我试图通过 jquery 数组进行迭代,但出现错误 导致错误的脚本是:
$.each(amount, function (key, value) {
console.info('>>> Selected line: '+value.value + " " + value.currency);
if ((value.currency == currency) && (value.value == val)) {
amount.splice(key,1);
console.info('Deleted: [' + value.value + " " + value.currency+ "] from line "+ key);
}
});
Firebug 抛出的错误是:
TypeError: value is undefined
有人可以指出错误在哪里或如何修复错误吗?
最佳答案
问题出在您的 .splice()
上。当您删除项目 0 时,所有内容都会向上移动一个位置,因此您不再拥有项目 1。
一般来说,您无法从正在枚举的列表中删除项目(除非在添加或删除项目时采取措施调整当前索引,但是......恶心)。
我建议使用 grep 等过滤函数:
var newArr = $.grep(amount, function(item, idx) {
return item.currency == currency || item.value == val;
}, true);
关于javascript - 奇怪的未定义 jquery 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23939974/