Javascript 奇怪的未定义jquery错误
我正试图通过jquery数组进行数据传输,但出现了一个错误 导致错误的脚本是:Javascript 奇怪的未定义jquery错误,javascript,jquery,arrays,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
$.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之类的过滤函数:
amount是一个数组,其形式如下:[{value:100,currency:'EUR'},{value:125,currency:'USD'}]一个大问题是您使用
value
作为一个对象,然后将value
作为对象value
中的另一个值,如value.value
所示,将其重命名以使事情更清楚。这也是,并将函数(键,值)更改为函数(键,数据),但仍然得到未定义的数据谢谢!我认为这可能与改变阵列有关,但不知道如何避免拼接
var newArr = $.grep(amount, function(item, idx) {
return item.currency == currency || item.value == val;
}, true);