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;ivar 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);