我正在尝试使用lodash.js删除重复的项目,但我无法使其正常工作。
这是数组中对象的结构:
{
label: 'tagA',
value: 1
}假设我有这样的数组:
var objectsArray = [
{
label: 'tagA',
value: 1
},
{
label: 'tagB',
value: 2
},
{
label: 'tagC',
value: 3
},
{
label: 'tagB',
value: 4
},
{
label: 'tagB',
value: 5
},
];我用lodash.js中的_.uniqBy()函数编写了这段代码,试图删除具有相同标签的数组元素,但它并没有像我预期的那样工作:
var uniq = _.uniqBy(objectsArray, function(o){
return o.label;
});我根据这里和那里找到的一些样本和lodash文档,当然,但我在这方面缺乏知识,所以任何帮助,它将非常感谢。
谢谢。
发布于 2016-05-21 23:11:18
请确保您使用正确的名称,代码适用于我:
var arr = [
{
label: 'tagA',
value: 1
},
{
label: 'tagB',
value: 2
},
{
label: 'tagC',
value: 3
},
{
label: 'tagB',
value: 4
},
{
label: 'tagB',
value: 5
},
];
var uniq = _.uniqBy(arr, function(o){
return o.label;
});
console.log(uniq); // >> Returned an array with first 3 objects from array arr发布于 2016-05-21 23:14:06
如果您想确保可以使用uniqWith();
这对我很管用
var data = [
{
label: 'tagA',
value: 1
},
{
label: 'tagB',
value: 2
},
{
label: 'tagC',
value: 3
},
{
label: 'tagB',
value: 4
},
{
label: 'tagB',
value: 5
},
];
var filtered = _.uniqWith(data, function(first, second){
return first.label === second.label
});发布于 2016-05-21 23:12:11
我认为第二个示例正是您需要的uniqBy
// The `_.property` iteratee shorthand.
_.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');
// → [{ 'x': 1 }, { 'x': 2 }]https://stackoverflow.com/questions/37364563
复制相似问题