Как правильно сравнить данные массива. У меня есть массив с тремя подмассивами:
var arr = [
[10, 10, 10, 20, 60],
[10, 10, 50, 10, 10],
[20, 10, 30, 20, 10]
];
Мне нужно собрать один массив, с максимальными значениями этих трех массивов. Длина под массивов всегда одинаковая, если в одном 5 значений то и в других двух столько же.
На выходе должен получится вот такой массив: var arr = [20, 10, 50, 20, 60]
const arr = [
[10, 10, 10, 20, 60],
[10, 10, 50, 10, 10],
[20, 10, 30, 20, 10]
];
const arrLength = arr.length;
const subArrLength = arr[0].length;
const flattenArr = [].concat(...arr);
const result = [];
for (let i = 0; i < subArrLength; i++) {
const indexes = [];
for (let j = 0; j < arrLength; j++) {
indexes.push(flattenArr[i + j * subArrLength]);
}
result.push(Math.max(...indexes));
}
console.log(result); // [20, 10, 50, 20, 60];
Самое простое решение: бежать по одному из внутренних массивов и сравнивать текущий элемент со значениями на этом же индексе в соседних массивах и выбирать максимальный.
Реализовать можно с помощью метода map, например так:
function* nextMax(arr, index) { // получаем массив соответствующий колонке index
for (var i = 0; i < arr.length; i++) {
yield arr[i][index];
}
}
var arr = [
[10, 10, 10, 20, 60],
[10, 10, 50, 10, 10],
[20, 10, 30, 20, 10]
];
var dest = arr[0].map((cur, i) => Math.max(...(nextMax(arr, i))));
console.log(dest);
Альтернативным решение было бы использование метода reduce с постепенным сравнением:
var arr = [
[10, 10, 10, 20, 60],
[10, 10, 50, 10, 10],
[20, 10, 30, 20, 10]
];
var dest = arr.reduce((acc, cur) =>
acc.map((el, i) => Math.max(el, cur[i]))
)
console.log(dest);
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Нужен пример подобного поведения - плагин или существующая реализация (jQueryUI Sortable работает не совсем так, например) когда плейсхолдер в сортируемом...
В переменной itemNumber хранится число Есть объекты типа cartname1
Нужно считать данные их txt файла на javascript, откуда-бы не взял пример, у меня не работает:
Как правильно реализовать загрузку заднего фона на сайте с соответствие с расширением монитора посетителя?