我有一个名为arr
的数组,其中的对象嵌套在其中,如下例所示:
[{"type" : "space", "content" : "value", /*etc.*/},
{"type" : "space", "content" : "value", /*etc.*/},
{"type" : "other value", "content" : "value", /*etc.*/},
/*Other nested objects*/
];
所以我试图循环遍历数组以检查该循环当前的对象之后是否#34;聚焦" on包含'类型'属性然后检查它的类型属性是否设置为" space",如果是,它将从数组中删除它
这是导致类型错误的代码:
for (var i = 0; i < arr.length; i++){
if (arr[i].type && arr[i + 1].type){
if (arr[a].type == "space" && arr[a + 1].type == "space"){
arr.pop(arr[a]);
}
}
}
我做错了什么,因为它对第二行的arr[i + 1]
似乎不满意
请问您是否希望我扩展我尚未明确的任何内容。
非常感谢。
答案 0 :(得分:1)
for (var i = 0; i < arr.length-1; i++){
当你访问i + 1时,你需要先停止迭代......
Array.pop也总是删除最后一个元素。你想要拼接:
arr.splice(i,1);
i--;//keep index at the right position