gpt4 book ai didi

JavaScript 在数组内迭代数组的意外行为

转载 作者:行者123 更新时间:2023-12-03 10:45:22 25 4
gpt4 key购买 nike

我正在尝试为基于 ajax 的 Web 应用程序构建键/值关系。我决定使用纯基于数组的方法,因为迭代数组比 obj 更快(至少有人告诉我)。

这个想法的基础如下:

var keyVals = [
[ "key1", ["value1"] ],
[ "key2", ["value2"] ],
];

但是,当我迭代数组以删除/设置或更改键时,事件不会按预期运行:

例如:

console.log(keyVals);

function delKeyPair(key) {
for (var i = 0; i < keyVals.length; i++) {
if (keyVals[i][0] && keyVals[i][0] === key) {
Array.prototype.splice.call(keyVals, i, 1);
return true
}
}
return false
};

delKeyPair("key1");
console.log(keyVals);

当我第一次使用 console.log() 数组时 - 它显示“在调用该函数之前,key1 已被删除。

这是一个 fiddle ,不太确定发生了什么。任何帮助深表感谢。 http://jsfiddle.net/3pfj8927/

最佳答案

key1 在调用函数之前尚未被删除:

尝试console.log(keyVals.length);

DEMO

输出:

Length before deleting: 2
Length after deleting: 1

关于JavaScript 在数组内迭代数组的意外行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28583124/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com