繁体   English   中英

Javascript-如何从此数组中删除记录?

[英]Javascript - how do i remove the record from this array?

我如何从该阵列中删除Bob并刷新阵列键,以便在删除Bob后Charlie键变为0而不是1?

//Insert: OK
var cars = [];
cars[cars.length] ="Bob";
cars[cars.length] ="Charlie";
cars[cars.length] ="Laura";
console.log( cars );

//Update: OK

function Update(input, upgrade) {
  for(var key in cars) {
    if(cars[key]===input) {
      cars[key] = upgrade;
    }
  }
}
Update("Bob", "Bob-sleeping");
console.log( cars );

// Now removing Bob-sleeping from the array which should show Charlie and Laura 

使用splice

cars.splice(0, 1);

0是要删除条目的索引, 1是要删除多少条目。

 "use strict"; var cars = []; cars[cars.length] ="Bob"; cars[cars.length] ="Charlie"; cars[cars.length] ="Laura"; display("Before: " + cars.join(", ")); cars.splice(0, 1); display("After: " + cars.join(", ")); function display(msg) { var p = document.createElement("p"); p.innerHTML = String(msg); document.body.appendChild(p); } 

如果需要找出索引,即使在模糊的现代浏览器上,也可以使用indexOf (可以在真正的旧浏览器上进行填充)。 因此,如果您从"Bob-sleeping" ,那么:

var index = cars.indexOf("Bob-sleeping");
if (index !== -1) {
    cars.splice(index, 1);
}

 "use strict"; var cars = []; cars[cars.length] ="Bob"; cars[cars.length] ="Charlie"; cars[cars.length] ="Laura"; display("Before: " + cars.join(", ")); var index = cars.indexOf("Bob"); // Or "Bob-sleeping", if you've `Update`d if (index !== -1) { cars.splice(index, 1); } display("After: " + cars.join(", ")); function display(msg) { var p = document.createElement("p"); p.innerHTML = String(msg); document.body.appendChild(p); } 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM