我的.js
文件(节点)
var z = [
{'a': 'uno', 'b': 'dos'},
{'a': 'uno', 'b': 'dos'},
{'a': 'uno', 'b': 'dos'},
{'a': 'uno', 'b': 'dos'}
];
我想从'a'
对象中省略每个z
。
我尝试过这样的事情但是没有用。
var y = _.forEach(z, function(n){
//console.log(_.omit(n, 'a'));
return _.omit(n, 'a');
});
console.log(y);
我试着没有回头,但没有多少办法,但没有得到它。
我的jsfiddle链接:http://jsfiddle.net/baumannzone/jzs6n78m/
有任何帮助吗?干杯!
答案 0 :(得分:3)
通过省略每个对象的a
来创建一个新的对象数组
console.log(_.map(z, function (obj) {
return _.omit(obj, 'a');
}));
// [ { b: 'dos' }, { b: 'dos' }, { b: 'dos' }, { b: 'dos' } ]
实际上,您省略并创建了一个新对象,但_.each
忽略了该对象。现在,我们使用_.map
,它将收集从函数返回的所有值并形成一个新数组。
如果你喜欢单行,请创建一个部分函数,只留下要用作_
的对象,就像这样
console.log(_.map(z, _.partial(_.omit, _, 'a')));
// [ { b: 'dos' }, { b: 'dos' }, { b: 'dos' }, { b: 'dos' } ]
答案 1 :(得分:2)
var y = _.map(z, function(n) {
return _.omit(n, 'a');
});
这将从旧数组创建一个新数组,将z中的对象映射到省略'a'属性的新对象。
另一种方法是使用链接,所以:
var y = _(z).map(function(n){return n.omit('a');}).value();
乙