在二维数组中查找嵌套的最小/最大数组

时间:2021-05-30 17:01:41

标签: javascript arrays

如何从 JavaScript 中的二维数组轻松获取包含最小值和最大值的数组?

您可以在下面找到日期集。我只想检查第二个元素的最小值和最大值(例如 1.40、1.38、1.35)。

[1622306648284, 1.4025036293793085],
[1622309604992, 1.384071162873584],
[1622312530257, 1.3503030062861177],
[1622315654724, 1.3625441847416848],
[1622318703104, 1.3645747739529213],
[1622321575558, 1.3611235799170127],
[1622324539379, 1.3750838657128996],
[1622327549644, 1.378768535066251],
[1622330652746, 1.3916061750979443],
[1622333538315, 1.4076792700030256],
[1622336466156, 1.3674852893896725]

所以预期的输出将是。

最小值:[1622321575558, 1.3503030062861177] 最大:[1622333538315, 1.4076792700030256]

谢谢

2 个答案:

答案 0 :(得分:1)

您想要的输出很奇怪,但这确实有用。

const arr = [[1622306648284, 1.4025036293793085],[1622309604992, 1.384071162873584],[1622312530257, 1.3503030062861177],[1622315654724, 1.3625441847416848],[1622318703104, 1.3645747739529213],[1622321575558, 1.3611235799170127],[1622324539379, 1.3750838657128996],[1622327549644, 1.378768535066251],[1622330652746, 1.3916061750979443],[1622333538315, 1.4076792700030256],[1622336466156, 1.3674852893896725]];

const max = arr.reduce((a, b) => a[1] >= b[1] ? a : b);
const min = arr.reduce((a, b) => a[1] <= b[1] ? a : b);

console.log(`Min: ${min} Max: ${max}`);

答案 1 :(得分:1)

您可以使用具有最小值和最大值的对象来减少数组。

const
    data = [[1622306648284, 1.4025036293793085], [1622309604992, 1.384071162873584], [1622312530257, 1.3503030062861177], [1622315654724, 1.3625441847416848], [1622318703104, 1.3645747739529213], [1622321575558, 1.3611235799170127], [1622324539379, 1.3750838657128996], [1622327549644, 1.378768535066251], [1622330652746, 1.3916061750979443], [1622333538315, 1.4076792700030256], [1622336466156, 1.3674852893896725]],
    result = data.reduce(({ min, max }, a) => {
        if (a[1] < min[1]) min = a;
        if (a[1] > max[1]) max = a;
        return { min, max };
    }, { min: [, Number.MAX_VALUE], max: [, -Number.MAX_VALUE] });

console.log(result);

相关问题