我有以下JS数组:
var myArray = [{name:"Bob",b:"text2",c:true},
{name:"Tom",b:"text2",c:true},
{name:"Adam",b:"text2",c:true},
{name:"Tom",b:"text2",c:true},
{name:"Bob",b:"text2",c:true}
];
我想删除名称为duplicates的索引,并重新创建一个具有不同名称的新数组,例如:
var mySubArray = [{name:"Bob",b:"text2",c:true},
{name:"Tom",b:"text2",c:true},
{name:"Adam",b:"text2",c:true},
];
如您所见,我删除了“Bob”和“Tom”,只留下了3个不同的名字。这是否可以使用Underscore?怎么样?
答案 0 :(得分:20)
将_.uniq
与自定义转换结合使用,像_.property('name')
这样的函数可以很好地执行,或只是'name'
,正如@Gruff Bunny在评论中所说:
var mySubArray = _.uniq(myArray, 'name');
答案 1 :(得分:2)
另一个答案肯定是最好的,但是如果您对学习感兴趣,那么另外一个不长的时间会让您接触到更多的下划线方法:
var mySubArray = []
_.each(_.uniq(_.pluck(myArray, 'name')), function(name) {
mySubArray.push(_.findWhere(myArray, {name: name}));
})