我有一个对象数组,我想对其进行迭代以生成一个新的过滤数组。同时,我还需要根据参数从新数组中过滤出一些对象。我试着这样做:
function renderOptions(options) {
return options.map(function (option) {
if (!option.assigned) {
return (someNewObject);
}
});
}
这是个好方法吗?有没有更好的方法?我愿意使用任何库,如lodash。
你应该使用Array。减少这个。
Var选项= [
{name: 'One', assigned: true},
{name: 'Two',赋值:false},
{name: 'Three',赋值:true},
];
Var减少=选项。减少(函数(筛选,选项){
If (option.assigned) {
var someenewvalue = {name: option.name, newProperty: 'Foo'}
filtered.push (someNewValue);
}
返回过滤;
},[]);
. getelementbyid(“输出”)。innerHTML = JSON.stringify(简化);
<h1>仅分配选项</h1>
<pre id="output"> </pre> .
或者,减速器可以是一个纯函数,就像这样
var reduced = options.reduce(function(result, option) {
if (option.assigned) {
return result.concat({
name: option.name,
newProperty: 'Foo'
});
}
return result;
}, []);