фильтровать массив, чтобы получить строку с максимальным значением столбца в двумерном массиве GoogleScripts - PullRequest
0 голосов
/ 14 июля 2020

У меня есть 2d массив - строки и столбцы из электронной таблицы. Я хочу отфильтровать его и получить строку, в которой указано c столбец (8) имеет максимальное значение.

Я пытаюсь применить это

 const filteredRow= fullArray.filter(r => r[7] === Math.max(r[7]))

, но он не дает желаемого вывод

Сообщите пожалуйста

Ответы [ 2 ]

2 голосов
/ 14 июля 2020

Используйте вместо сокращение :

const max7r = fullArray.reduce((r1,r2) => r1[7]>r2[7] ? r1:r2)
1 голос
/ 14 июля 2020

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

From:

const filteredRow= fullArray.filter(r => r[7] === Math.max(r[7]))

To:

const max = Math.max.apply(null, fullArray.map(r => r[7]));
const filteredRow = fullArray.filter(r => r[7] === max);

Примечание:

  • В этой модификации, когда есть несколько максимальных значений как одно и то же значение, filteredRow имеет несколько строк.

Ссылка:

...