我试图通过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
有人能指出错误在哪里或如何解决错误吗?
答案 0 :(得分:1)
问题在于您的.splice()
。当您移除项目0时,所有内容都向上移动,因此您不再拥有项目1。
一般来说,您无法从您列举的列表中删除项目(除非在添加或删除项目时采取措施调整当前索引,但是.. yuck)。
我建议使用像grep这样的过滤器功能:
var newArr = $.grep(amount, function(item, idx) {
return item.currency == currency || item.value == val;
}, true);