gpt4 book ai didi

javascript - Math.min.apply(Math,Array) 当 Array.length = 100 时返回 NaN

转载 作者:行者123 更新时间:2023-11-30 14:34:58 25 4
gpt4 key购买 nike

当使用 Math.min.apply 并且 Array.length 为 10 时就可以了

getAllIndexes(arr, val) {
var indexes = [], i = -1;
while ((i = arr.indexOf(val, i+1)) != -1){
indexes.push(i);
}
return indexes;
}

arrayMinIndex(array) {
return this.getAllIndexes(array, Math.min.apply(Math,array));
}

enter image description here

但是当 Arrays 更大时,在这种情况下 length = 100,val 是 NaN,

enter image description here

更新!!!!

如果我将索引名称 00,01,02,03 ... 99 更改为 0,1,2,3,4 ... 99 它的工作

enter image description here

这部分我动态创建了数组,索引名称是一个字符串。 enter image description here

但是 MAth.min 的索引名称是什么问题?

最佳答案

看起来当您创建数组时,您正在创建诸如“01”、“02”等键

这些与索引 1 和 2 不同

见下文

const array1 = new Array();
const array2 = new Array();
const array3 = new Array();
array1[0] = 1;
array2['00'] = 2
array3[0] = 3
array3['00'] = 4

console.log(JSON.stringify(array1), typeof array1[0]);
console.log(JSON.stringify(array2), typeof array2[0]);
console.log(JSON.stringify(array3), typeof array3[0]);

看看 array2[0] 是如何未定义 ...现在如果你这样做了

const array = new Array();
array['00'] = 10;
array['01'] = 9;
array['02'] = 8;
array['03'] = 7;
array['04'] = 6;
array['05'] = 5;
array['06'] = 4;
array['07'] = 3;
array['08'] = 2;
array['09'] = 1;
array['10'] = 100;
console.log(array);

查看索引 10 之前的所有 undefined

这就是 Math.min 结果为 NaN 的原因

关于javascript - Math.min.apply(Math,Array) 当 Array.length = 100 时返回 NaN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50576112/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com