使用下划线_reduce将数组转换为对象[重复]

问题描述 投票:-4回答:2

如何转换此数组

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

到对象

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

仅使用javascript下划线_reduce吗?

javascript underscore.js
2个回答
1
投票

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

return obj;
}, {});

并在您的代码上经过测试,这是输出

enter image description here


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);
© www.soinside.com 2019 - 2024. All rights reserved.