题目描述:
给定一个数组,数组中每一项的第一个元素是姓名,第二个元素是他会使用的语言。同一个人可能会出现多次,因为他们可能会使用多种语言。希望你编写一个函数统计出:有多少个人会使用“n”种语言。输出结果需要根据语言的种类进行排序。 注意:输出结果需要是一个对象,其中key值代表几种语言,value代表有几个人会这几种语言。 输出样例
{ 3:1 }以上输出意思是:会使用3种语言的有1人。
function solution(known_languages){
// 编写你的代码
}
function main() {
let test_case = [ ["barackobama", "rust"],
["barackobama", "clojure"],
["barackobama", "clojure"],
["cristiano", "typescript"],
["rihanna", "rust"],
["cristiano", "java"],
["taylorswift", "java"],
["taylorswift", "rust"],
["taylorswift", "swift"]
];
}
let result = solution(test_case);
console.log(result);
解答:
function solution(known_languages) {
// 编写你的代码
let temp = {};
known_languages.forEach((item) => {
let [people, language] = item;
if (!temp[people]) {
temp[people] = new Set();
}
temp[people].add(language);
});
let res = {};
Object.values(temp).forEach((item) => {
const size = item.size;
res[size] = 1 + (res[size] || 0);
});
return res;
}
题目的测试用例最终输出结果为:
{
1:1,
2:2,
3:1
}