如果我有一个字母数组,我该如何将每个字母变成一个对象键,其值等于JavaScript中该数组中有多少个?
例如:
const array = ['a', 'b', 'c', 'c', 'd', 'a'];
const obj = { a: 2, b: 1, c: 2, d: 1};
答案 0 :(得分:1)
对象的索引与JavaScript中的数组非常相似,如下所示:
const obj = {};
array.forEach((element) => {
//Check if that field exists on the object to avoid null pointer
if (!obj[element]) {
obj[element] = 1;
} else {
obj[element]++;
}
}
答案 1 :(得分:1)
您只需使用Array.reduce()
即可创建频率图:
const array = ['a', 'b', 'c', 'c', 'd', 'a'];
let result = array.reduce((a, curr) => {
a[curr] = (a[curr] || 0)+1;
return a;
},{});
console.log(result);