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]();