使用下划线_reduce将数组转换为对象

时间:2020-02-24 09:51:08

标签: javascript underscore.js

如何转换此数组

var array = ['a', 'b', 'c', 'd', 'a', 'b','c', 'd'] 

到对象

object = { a:2 , b:2, c:2, d:2 }

仅使用javascript下划线_reduce吗?

2 个答案:

答案 0 :(得分:1)


arr.reduce((obj, currentKey) => {
  if(currentKey in obj) {
     obj[currentKey] = obk[currentKey] +1
  } else{ 
    obj[currentKey] = 1
  }

return obj;
}, {});

并在您的代码上进行了测试,这是输出

enter image description here

答案 1 :(得分:0)

我希望这会有所帮助

var array = ['a', 'b', 'c', 'd', 'a', 'b','c', 'd'];

var obj = [...new Set(array)]
    .reduce((acc, cur) => ({
      ...acc,
      [cur]: array.filter(item => item === cur).length
    }),
{});

console.log(obj);

相关问题