JavaScript:如何获取以特定字符串开头的对象的所有键和值?

前端之家收集整理的这篇文章主要介绍了JavaScript:如何获取以特定字符串开头的对象的所有键和值?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图获取以imageIds开头的对象的所有键和值.

我的对象显示如下:

{
    title: 'fsdfsd',titleZh: 'fsdfsd',body: 'fsdf',bodyZh: 'sdfsdf',imageIds: '/uploads/tmp/image-3.png',imageIdsZh: '' 
}

但我只需要属性imageIds和imageIdsZh.然而明天,一个对象可能包含imageIdsBlah,我也需要拿起它.我可以从对象中删除前几个属性,但是下一个对象可能包含其他属性,如foo:’bar’

解决方法

一些功能性的风格awesomeness:
var data = {
    title: 'fsdfsd',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);

演示:http://jsfiddle.net/ngX4m/

一些小的解释:

>我们使用Array.prototype.filter()函数过滤出以`imageIds2开头的键
>我们使用Array.prototype.reduce()将过滤的键数组转换为键值对的对象.为此,我们使用{}(一个空对象)的初始值,填充它并从每个执行步骤返回.

UPD:

@GitaarLAB公平更新:

Object.keys is ES5,but returns an objects own properties (so no need for obj.hasOwnProperty(key))

猜你在找的JavaScript相关文章