Javascript - TypeError:无法读取属性'键入'未定义的

时间:2017-06-24 10:57:05

标签: javascript arrays

我有一个名为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]似乎不满意

请问您是否希望我扩展我尚未明确的任何内容。
非常感谢。

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