javascript - 奇怪的未定义 jquery 错误

标签 javascript jquery arrays

我试图通过 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 等过滤函数:

http://jsfiddle.net/DnN4a/

var newArr = $.grep(amount, function(item, idx) {
   return item.currency == currency || item.value == val; 
}, true);

关于javascript - 奇怪的未定义 jquery 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23939974/

相关文章:

javascript - 在javascript中的另一个线程中运行代码

javascript - 如何在 Matter.js 中使用 SVG 图像?

jquery - 使用 jQuery 验证来验证多个复选框

javascript - 拆分数组中的字符串

c++ - 移动数组中的元素

php - 处理对象数组时如何避免循环中的array_merge

javascript - 如何让 Pdf.js 在网页上运行?

javascript - 在 Grails 模板中呈现的 HTML 未附加到页面源 (DOM)

jquery - 鼠标悬停时无法将光标移动到子菜单

php - 在 PHP 中使用 array_search 使对象可搜索