javascript - 我无法从数组中删除相邻的值
问题描述
我试图删除adjacent
duplicates
但不是想要的结果(3 个结果)我只得到2 个结果
我的预期输出:
[{"mw://HOME_BIN":{"position":0}},{"mw://diagnosis_HOME":{"position":3}},{"mw://HOME_BIN":{"position":3}}]
这是我尝试过的:
var arr = [{"mw://HOME_BIN":{"position":0}},{"mw://diagnosis_HOME":{"position":3}},{"mw://HOME_BIN":{"position":3}},{"mw://HOME_BIN":{"position":3}}];
var nArr = [];
for(var i = 0; i < arr.length;++i){
var key1 = Object.keys(arr[i]).join('');
var nLength = ((i + 1) > arr.length - 1 ) ? 0 : i + 1;
var key2 = Object.keys(arr[nLength]).join('');
if(key1 == key2) continue;
nArr.push(arr[i]);
}
console.log(nArr);
从上面的结果你可以看到又少了一个元素
解决方案
var arr =
[
{"mw://HOME_BIN":{"position":0}},
{"mw://diagnosis_HOME":{"position":3}},
{"mw://HOME_BIN":{"position":3}},
{"mw://HOME_BIN":{"position":3}}
];
var nArr = [];
arr.forEach((ar,index) => {
if(index === arr.length - 1) {
nArr.push(ar);
return;
}
if(JSON.stringify(ar) !== JSON.stringify(arr[index+1])){
nArr.push(ar);
}
})
console.log(nArr);
您可以使用JSON.stringify
比较整个对象而不是使用单个键,以实现可扩展性
推荐阅读
- powershell - Poweshell、命名空间和变量声明
- java - 不幸的是你的应用程序没有运行 ha.. 找不到类 'android.view.WindowInsets) E/EGL_emulation: tid 4854: eglSurfaceAttrib(1210): error 0x3009
- java - 基于时间戳在java中的值对映射进行排序
- python - 使用 Python Flask 执行多个 SQL 查询
- lucene - lucene BKDWriter 是否在构建方法中准确计算leafCardinality?
- django - Django booleanfield modelform
- c# - 在 excel 文档 VS C# 的特定工作表中创建新行
- python-3.x - 我可以查看地图上每个 Folium MarkerCluster 中的哪些点吗?
- javascript - 创建具有特定结构的图形(coderbyte)
- python - 在 django 中更新值