найти наименьшее число в массиве массива - PullRequest
0 голосов
/ 19 января 2019

Я пытаюсь написать функцию для поиска наименьшего числа в массиве массива.

уже пробовал это, но я не знаю, как это сделать, когда в массиве есть массивы.

const arr = [4, 8, 2, 7, 6, 42, 41, 77, 32, 9]
const min = Math.min(arr)
console.log(min)

Ответы [ 3 ]

0 голосов
/ 19 января 2019

Вы можете использовать map для перебора вложенных массивов, а затем использовать Math.min(...array) для каждого, чтобы получить минимум. Выходные данные map представляют собой массив минимальных значений.

const arr = [[4, 8, 2], [7, 6, 42], [41, 77, 32, 9]];

const out = arr.map(a => Math.min(...a));

console.log(out);
0 голосов
/ 19 января 2019

Использовать спред ... и flat:

const a = [[0, 45, 2], [3, 6, 2], [1, 5, 9]];

console.log(Math.min(...a.flat()));

Или вы можете использовать reduce:

const arr = [[7, 45, 2], [3, 6, 2], [1, 5, 9]];

let r = arr.reduce((a, e) => Math.min(a, ...e), Infinity) 

console.log(r);
0 голосов
/ 19 января 2019

Принимая ES6, вы можете использовать синтаксис распространения ..., который принимает массив в качестве аргументов.

const arr = [4, 8, 2, 7, 6, 42, 41, 77, 32, 9];
const min = Math.min(...arr);

console.log(min);

С ES5 вы можете взять Function#apply, который принимает this и параметры в виде массива.

const arr = [4, 8, 2, 7, 6, 42, 41, 77, 32, 9];
const min = Math.min.apply(null, arr);

console.log(min);

Для невыполненных массивов возьмите функцию выравнивания, например

const
    flat = array => array.reduce((r, a) => r.concat(Array.isArray(a) ? flat(a) : a), []),
    array = [[1, 2], [3, 4]],
    min = Math.min(...flat(array));

console.log(min);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...