Lodash:从数组中删除连续的重复项
Lodash: Remove consecutive duplicates from an array
我需要减少这个对象数组
[
{id:1, value:'A'},
{id:2, value:'B'},
{id:3, value:'B'},
{id:4, value:'B'},
{id:5, value:'A'},
{id:6, value:'A'},
{id:7, value:'B'}
]
到
[
{id:1, value:'A'},
{id:2, value:'B'},
{id:5, value:'A'},
{id:7, value:'B'}
]
如果连续的对象具有相同的值,它保留第一个并删除其余的。
我目前的解决方案是
var lastValue = undefined;
var result = [];
var propPath = 'value'; // I need later to reference nested props
objects.filter(function(object){
var value = _.at(object, propPath);
if (!_.isEqual(value, lastValue)){
result.push(object);
lastValue = value;
}
});
console.log(result);
我的问题是,由于 Lodash 有很多功能,是否有 Lodash 方式 更简单地做到这一点?也许是一些不使用辅助变量(lastValue 和结果)的预构建解决方案。
我需要减少这个对象数组
[
{id:1, value:'A'},
{id:2, value:'B'},
{id:3, value:'B'},
{id:4, value:'B'},
{id:5, value:'A'},
{id:6, value:'A'},
{id:7, value:'B'}
]
到
[
{id:1, value:'A'},
{id:2, value:'B'},
{id:5, value:'A'},
{id:7, value:'B'}
]
如果连续的对象具有相同的值,它保留第一个并删除其余的。
我目前的解决方案是
var lastValue = undefined;
var result = [];
var propPath = 'value'; // I need later to reference nested props
objects.filter(function(object){
var value = _.at(object, propPath);
if (!_.isEqual(value, lastValue)){
result.push(object);
lastValue = value;
}
});
console.log(result);
我的问题是,由于 Lodash 有很多功能,是否有 Lodash 方式 更简单地做到这一点?也许是一些不使用辅助变量(lastValue 和结果)的预构建解决方案。