[{
country: "US",
languages: [
"en"
]
},
{
country: "BE",
languages: [
"nl",
"fr",
"de"
]
},
{
country: "NL",
languages: [
"nl",
"fy"
]
},
{
country: "DE",
languages: [
"de"
]
},
{
country: "ES",
languages: [
"es"
]
}
]
учитывая приведенный выше объект, в котором перечислены объекты некоторых стран, как я могу найти наиболее распространенный официальный язык (языки) всех стран, использующих javascript?
Используйте структуру данных, которая хорошо подходит для поиска i. е. Map
или просто простой объект JavaScript (ищите в O(1)
) и храните там все языки и количество их вхождений.
После того, как вы это сделаете, отсортируйте вхождения и выберите первый элемент (при сортировке в порядке убывания), и вы получите элемент с наибольшим числом вхождений.
Здесь реализация с использованием Map
.
const data = [{
country: "US",
languages: [
"en"
]
},
{
country: "BE",
languages: [
"nl",
"fr",
"de"
]
},
{
country: "NL",
languages: [
"nl",
"fy"
]
},
{
country: "DE",
languages: [
"de"
]
},
{
country: "ES",
languages: [
"es"
]
}
]
const countLanguages = new Map();
data.forEach(country => {
country.languages.forEach(lang => {
if (!countLanguages.has(lang)){
countLanguages.set(lang, 1);
}
else countLanguages.set(lang, countLanguages.get(lang) + 1);
})
})
const sorted = [...countLanguages.entries()].sort();
console.info("Most occurrences:", sorted[0])
Вы только что изменили свой вопрос на ерунду, как только получили ответ?