Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 奇怪的未定义jquery错误_Javascript_Jquery_Arrays - Fatal编程技术网

Javascript 奇怪的未定义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

我正试图通过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之类的过滤函数:


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);