I am trying to get all the keys and values of an object that begin with imageIds.
My object appears as the following:
{
title: \'fsd
Some functional style awesomeness:
var data = {
title: 'fsdfsd',
titleZh: 'fsdfsd',
body: 'fsdf',
bodyZh: 'sdfsdf',
imageIds: '/uploads/tmp/image-3.png',
imageIdsZh: ''
};
var z = Object.keys(data).filter(function(k) {
return k.indexOf('imageIds') == 0;
}).reduce(function(newData, k) {
newData[k] = data[k];
return newData;
}, {});
console.log(z);
Demo: http://jsfiddle.net/ngX4m/
Some minor explanation:
Array.prototype.filter() function to filter out the keys that start with `imageIds2Array.prototype.reduce() to convert an array of filtered keys into an object of key-value pairs. For that we use the initial value of {} (an empty object), fill it and return from every execution step.UPD:
A fair update from @GitaarLAB:
Object.keysis ES5, but returns an objects own properties (so no need forobj.hasOwnProperty(key))