JavaScript:比删除更好的解决方案

标签 javascript jquery arrays

我有以下数组:

var example = [
    function() { /* hello */ },
    function() { /* goodbye */ }
];

我使用 delete example[0]; 并得到以下结果:

var example = [
    1: function() { /* goodbye */ }
];

有没有比delete更好的解决方案?还是有一种简单的方法来修复数组中的索引? (我有 jQuery 可供使用)

编辑:我修复了示例数组。示例中有索引。

最佳答案

因为example 是一个数组,而不是delete,你可以使用.splice [MDN] :

example.splice(0, 1);

但如果 examples 实际上是一个对象,则您必须使用 delete 并遍历所有属性并“重命名”它们。尽管使用数组可能更容易。

使用 delete 得到此结果的原因是您要从基础对象中删除属性 '0' 和属性 '1' 仍然存在。你基本上是在较低的层次上运作。

索引间隙的另一个问题是 array.length 将始终返回最高索引 + 1,而不是数组中值的实际数量。所以在删除元素后,example.length 仍然是 2

关于JavaScript:比删除更好的解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8991398/

相关文章:

javascript - Fabric js动画速度在动画时变化

jquery - 在 Html 表中是否可以获取位于另一行的元素的 id?

javascript - 使用JQuery获取不同行上两个表格单元格之间的所有表格单元格

c# - C# 中的列表切片

java - 检测扬声器是否已插入?

javascript - Phonegap Facebook 连接插件设置

javascript - 禁用 Ctrl+A、Ctrl+C 键功能到 HTMl 页面

javascript - 如何隐藏 AJAX 调用生成的 DIV?

javascript - 按特定数组的顺序对其他数组进行排序?

c# - 如何使用元素序列作为目标正确搜索和解析数组