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和result)的预构建解决方案。
这可以通过.reject
来解决:
_.reject(objects, function (object, i) {
return i > 0 && objects[i - 1].value === object.value;
});
演示
相关文章:
- 使用php或javascript从facebook相册URL中删除多余的部分
- RegEx删除空属性?例如,如果(class=“”||class=“”)移除;否则就下课
- 如何删除多行HTML排列中的空白
- 如何从rails中的代码中删除新行( )
- 删除对HTML元素的拖动
- 当图像转换为本地存储的DataURL时,EXIF被删除
- 按顺序添加和删除类
- iframe正在添加标签,需要删除它们
- 如何在HTML输入字段中添加不可删除的后缀
- Lodash:从数组中删除连续的重复项
- Regex从空格分隔的字符串中删除连续重复项
- 删除连续重复的单词javascript
- 删除JS字符串中连续的竖条
- 使用正则表达式删除连续逗号
- 连续删除数组项目(游戏障碍)
- JavaScript Regex删除特定的连续重复字符
- D3.js删除两个元素匹配属性时,连续单击
- 使用Jquery连续删除和更新动态创建的表行id
- 如何在javascript中删除带有两个管道字符的连续管道
- 如何从数组中删除重复项,同时保留非连续的重复项