为什么函数不能读取循环中的数组元素



我有一个简单的函数,它只检查数组的第四个元素是否更大。

不知怎的,我得到并错误TypeError: Cannot read property '3' of undefined

我不知道为什么。。。有人能告诉我这个功能出了什么问题吗?

var pasujace = [
["BLANK", "A4205022", "L00063746", 1000.0],
["BLANK", "A4205022", "L00063743", 100.0],
["BLANK", "A4205022", "L00063743", 100.0],
["BLANK", "A4205022", "L00056983", 300.0]
];
var roznica = 50;
function lastOne(arr, num) {
var nowa = [];
for (var i = 0; i < arr.length; i++) {
if (arr[i][3] > num) {
nowa.push(arr[i]);
}
}
return nowa
}
const last = lastOne(pasujace, roznica);
console.log(last)

使用过滤器

var pasujace = [
["BLANK", "A4205022", "L00063746", 1000.0],
[],
["BLANK", "A4205022", "L00063743", 100.0],
["BLANK", "A4205022", "L00063743", 100.0],
["BLANK", "AAA"],
,
["BLANK", "AAA", "MISSING"],
["BLANK", "A4205022", "L00056983", 300.0]
];
var roznica = 100;
const lastOne = (arr, num) => arr.filter(item => {
if (!item || item.length < 3 || isNaN(item[3])) return false;
return item[3] > num
});

const last = lastOne(pasujace, roznica);
console.log(last)

最新更新