У меня есть массив строк, которые являются числами. Я пытаюсь вернуть 4 самых больших числа в моем массиве.
const data = [
"1,203,291",
"2,301,291",
"643,092",
"1,391,290",
"32,309",
"3,391"
]
Я пытаюсь вернуть 2,301,291, 1,391,290, 1,203,291, 643,092
Сначала я начинаю с удаления запятых в строке и преобразования ее в число.
let topArr = data.map(e => Number(e.replace(/(,\s*)+/g, '').trim()));
Затем создайте другую переменную, которая равна максимальному набору чисел.
let topValues = Math.max(...topArr)
//bring back the commas that were removed to append values with commas
String(topValues).replace(/(.)(?=(\d{3})+$)/g, '$1,')
Я использовал Math.Max
, но это возвращает только самое большое число, которое равно 2,301,291
is есть ли способ изменить Math.Max, чтобы получить 4 лучших?
Вот мой код в полном виде:
const data = [
"1,203,291",
"2,301,291",
"643,092",
"1,391,290",
"32,309",
"3,391"
]
let topArr = data.map(e => Number(e.replace(/(,\s*)+/g, '').trim()));
let topValues = Math.max(...topArr)
//bring back the commas that were removed to append values with commas
String(topValues).replace(/(.)(?=(\d{3})+$)/g, '$1,')