无法删除数组

时间:2017-08-23 12:28:21

标签: javascript arrays

尝试从数组元素中删除元素的方法很多

我已经声明了一个数组vehicleObj

var vehicleObj = [{
    regNo: "XX09WP", 
    model: "Ford KA", 
    repaircost: "23.89",
    typeRepair: "exhust"
}];

这是我的循环

vehicleObj.forEach(function(regNoPass,index){
   console.log(regNoPass);
   console.log("your in for each..");
   if(vehicleObj[index].regNo == regNoPass)
   {
      console.log("Magic has happen");
      vehicleObj.splice(regNoPass, 1);
   }
});

无论regNoPass值是什么,即XX09WP,它都不会从数组中删除

任何想法都会受到欢迎

1 个答案:

答案 0 :(得分:3)

只需更改

vehicleObj.splice(regNoPass, 1);

vehicleObj.splice(index, 1);

因为splice需要索引而不是值(或者不需要遍历数组来查找索引)。

请注意,如果您不需要保留相同的数组对象,则整体可以表示为

vehicleObj = vehicleObj.filter(function(v){
     return v.regNo !== regNoPass;
});