【发布时间】:2018-06-24 22:09:05
【问题描述】:
几个小时后我遇到了一个障碍——想知道一个新的开发人员是否可以查看下面的代码,代码被简化以显示问题。
我在一个对象数组上过滤一个属性值,并用一个数组交叉引用该属性,该数组具有匹配的键和布尔值来控制是否应将其考虑到过滤器中。
但是我的结果是返回所有 3 个对象,尽管 console.log 似乎评估正确。有什么想法吗?
非常感谢...
var data = [{
"id": 1,
"status": "new",
},
{
"id": 2,
"status": "rejected",
},
{
"id": 3,
"status": "changed",
}
];
var filter = {
"new": true,
"rejected": false,
"changed": true
}
var result = data.filter(function(item) {
var arr = [];
Object.keys(filter).forEach(function(key) {
if (item.status === key && filter[key] === true) {
console.log('---')
console.log('item.status', item.status)
console.log('key', key)
console.log('filter[key]', filter[key])
console.log('---')
arr.push(item);
}
});
return arr;
});
【问题讨论】:
标签: javascript arrays filter ecmascript-5