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

JavaScript:比删除更好的解决方案,javascript,jquery,arrays,Javascript,Jquery,Arrays,我有以下数组: var example = [ function() { /* hello */ }, function() { /* goodbye */ } ]; 我使用删除示例[0]和am留下以下结果: var example = [ 1: function() { /* goodbye */ } ]; 有比删除更好的解决方案吗?或者有没有一种简单的方法来修复数组中的索引?(我可以使用jQuery) 编辑:我修复了示例数组。示例中有索引。因为示例是一个数组,而不

我有以下数组:

var example = [
    function() { /* hello */ },
    function() { /* goodbye */ }
];
我使用
删除示例[0]和am留下以下结果:

var example = [
    1: function() { /* goodbye */ }
];
有比删除更好的解决方案吗?或者有没有一种简单的方法来修复数组中的索引?(我可以使用jQuery)


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

因为
示例
是一个数组,而不是
删除
,您可以使用:

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

使用
delete
获得此结果的原因是您正在从基础对象中删除属性
'0'
,并且属性
'1'
仍然存在。您基本上是在较低的级别上运行


索引间隙的另一个问题是
array.length
总是返回最高索引+1的值,而不是数组中的实际值数。因此,删除元素后,
example.length
仍然是
2

您定义数组的方法是错误的。 这就是它的工作方式:

var example = [
    function() { /* hello */ },
    function() { /* goodbye */ }
];
可以使用shift删除第一个图元:

var firstElement = example.shift();

您可以使用自定义排序功能:

array.sort(sortfunction)

function sortfunction(a, b){
  // check indexes here
}

你可以移动你的第一个元素

[].shift()
也可以。如果您想将其从数组的末尾删除,也可以使用
[].pop()
array.sort(sortfunction)

function sortfunction(a, b){
  // check indexes here
}
var example = [
    function() { alert('hello'); },
    function() { alert('goodbye'); }
];
example[0]();
example.shift();
example[0]();