Следует отметить, что ваша строка JSON, вероятно, имеет встроенную структуру, которая сделает его более производительным для анализа, чем использование split()
, что крайне медленно.
Однако, поскольку я неЯ знаю, что это за структура. Я пойду с выбранным вами подходом.
Вы можете использовать что-то вроде следующего кода, который будет отображать массив валют и возвращать массив объектов.Каждый объект будет иметь свойство currency
и свойство count
.Затем вы можете отсортировать массив в порядке убывания по свойству count
, поэтому первый элемент в вашем массиве будет равен или больше, чем все остальные.
Преимущество здесь заключается в том, чтоВы получаете счет для всех валют, что может быть полезно, если у вас есть связь между 2 или более валютами для наибольшего представления.
const text = `{"values": [ '€123', 'CHF123', 'CHF456', 'SEK123', '$123', '£123' ]}`;
const currencies = ["€", "CHF", "SEK", "$", "£"];
const counts = currencies
.map(
currency =>
({
currency,
count: text.split(currency).length -1,
})
)
.sort(
(l, r) =>
r.count - l.count
);
console.log( counts );
Если вы просто хотите получить наибольшее, вы можете получить его из своего массива:
counts[0].currency