Javascript中的过滤对象

Javascript中的过滤对象,javascript,jquery,arrays,object,filter,Javascript,Jquery,Arrays,Object,Filter,有没有快速的方法来过滤对象数组,使每个对象只返回几个属性 例如,我们有以下数据: var objArr = [{ "Title": "July 13 - July 19 2014", "displayAd_imp": "3,500", "videoAd_imp": "1.5", "tv_imp": "0.52", "Date": "2014-07-17T00:00:00.000Z", "WeekNo": 2

有没有快速的方法来过滤对象数组,使每个对象只返回几个属性

例如,我们有以下数据:

var objArr = [{

    "Title": "July 13 - July 19 2014",
        "displayAd_imp": "3,500",
        "videoAd_imp": "1.5",
        "tv_imp": "0.52",
        "Date": "2014-07-17T00:00:00.000Z",
        "WeekNo": 29
}, {

    "Title": "July 20 - July 26 2014",
        "displayAd_imp": "1,600",
        "videoAd_imp": "2.55",
        "tv_imp": "0.052",
        "Date": "2014-07-24T00:00:00.000Z",
        "WeekNo": 30
}, {

    "Title": "July 27 - Aug 2 2014",
        "displayAd_imp": "1,500",
        "videoAd_imp": "2.1",
        "tv_imp": "0.122",
        "Date": "2014-07-31T00:00:00.000Z",
        "WeekNo": 31
}]
我正在尝试筛选上面的数组,以获得另一个仅包含
videoAd\u imp
videoAd\u imp
tv\u imp
的数组。所以看起来是这样的:

 [{

            "displayAd_imp": "3,500",
            "videoAd_imp": "1.5",
            "tv_imp": "0.52",
    }, {

            "displayAd_imp": "1,600",
            "videoAd_imp": "2.55",
            "tv_imp": "0.052",

    }, {

            "displayAd_imp": "1,500",
            "videoAd_imp": "2.1",
            "tv_imp": "0.122",
}]
提前谢谢

像下面一样使用

如果要对所有对象进行新引用。

var newArr = objArr.map(function (obj) {
     return {displayAd_imp:obj.displayAd_imp,videoAd_imp:obj.videoAd_imp,tv_imp:obj.tv_imp};
})

console.log(newArr);
如果您想获得原始参考,请使用下面的方法

var newArr = objArr.map(function (obj) {
    delete obj.Date;
    delete obj.WeekNo;
    delete obj.Title
    return obj;
})

这里有一个简单的解决方案

var newArr = []

for(var i=0;i<objArr.length) {
    newArr.push({
        displayAd_imp: objArr[i].displayAd_imp,
        videoAd_imp: objArr[i].videoAd_imp,
        tv_imp: objArr[i].tv_imp
       }
    );
}
var newArr=[]
对于(var i=0;i
var objArr=[{/*…*/}];
//缓存数组长度以避免在每次迭代时解析它
var arrLength=objArr.length;
//您的新阵列
var newArr=[];

对于(var i=0;i

如果要修改原始对象,只需在它们上面循环,然后使用
delete
删除不需要的内容。如果需要新对象,请使用
.map()
并返回仅包含所需内容的新对象。没有内置解决方案。您不想按原样使用对象有什么原因吗?(不是说你应该这样做;只是好奇。)…这些数据是作为JSON数据到达的吗?如果是,可以使用
JSON.parse()
自动完成。
var objArr = [{/* ... */}];

// cache the array length to avoid resolving it on every iteration
var arrLength = objArr.length;
// your new array
var newArr = [];

for(var i=0; i<arrLength; i++){
    // push only the properties you want to the new array
    newArr.push({
        displayAd_imp: objArr[i].displayAd_imp,
        videoAd_imp: objArr[i].videoAd_imp,
        tv_imp: objArr[i].tv_imp
    });
}
// show it in the console
console.log(newArr);