将数组元素转换为对象键-JavaScript

时间:2018-10-31 20:10:48

标签: javascript arrays object

如果我有一个字母数组,我该如何将每个字母变成一个对象键,其值等于JavaScript中该数组中有多少个?

例如:

const array = ['a', 'b', 'c', 'c', 'd', 'a'];
const obj = { a: 2, b: 1, c: 2, d: 1};

2 个答案:

答案 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);