gpt4 book ai didi

javascript - 如何在javascript中找到嵌套数组的最大值/最小值?

转载 作者:IT王子 更新时间:2023-10-29 03:19:48 26 4
gpt4 key购买 nike

我想找到嵌套数组的最大值,如下所示:

a = [[1,2],[20,3]]
d3.max(d3.max(a)) // 20

但是我的数组包含一个我想丢弃的文本字段:

a = [["yz",1,2],["xy",20,3]]
d3.max(a) // 20

最佳答案

如果您有一个嵌套的数字数组 (arrays = [[1, 2], [20, 3]]),嵌套 d3.max :

var max = d3.max(arrays, function(array) {
return d3.max(array);
});

或者等效地,使用 array.map :

var max = d3.max(arrays.map(function(array) {
return d3.max(array);
}));

如果你想忽略字符串值,你可以使用array.filter忽略字符串:

var max = d3.max(arrays, function(array) {
return d3.max(array.filter(function(value) {
return typeof value === "number";
}));
});

或者,如果您知道字符串始终位于第一个位置,则可以使用 array.slice这样效率更高一些:

var max = d3.max(arrays, function(array) {
return d3.max(array.slice(1));
});

还有一种选择是使用访问器函数,它为非数字值返回 NaN。这将导致 d3.max 忽略这些值。方便的是,JavaScript 的内置 Number 函数就是这样做的,所以你可以说:

var max = d3.max(arrays, function(array) {
return d3.max(array, Number);
});

关于javascript - 如何在javascript中找到嵌套数组的最大值/最小值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10564441/

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