Lodash减少对象数组中的对象数组

时间:2018-03-24 02:45:50

标签: lodash reduce

我试图通过

获取所有部分中所有guideScenes的列表
let combinedScenes = _.reduce(sections,
  (prev, section) =>  {return {...prev, ...section.guideScenes}},
  {}
)

它只返回第一部分列表,我如何在那里获得所有这些?

1 个答案:

答案 0 :(得分:1)



const sections = [{guideScenes: ['hello']}, {guideScenes: ['world']}, {guideScenes: ['hi', 'yo']}] 

let combinedScenesObj = _.reduce(sections, (prev, section, index) =>  {
  return {...prev, [index]: [...section.guideScenes]}
}, {})

console.log('object:', combinedScenesObj)

<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.5/lodash.core.js"></script>
&#13;
&#13;
&#13;

你很近,你需要一个键才能添加到每个数组,因为你试图添加到一个对象

//dummy data
const sections = [{guideScenes: ['hello']}, {guideScenes: ['world']}, {guideScenes: ['hi', 'yo']}]

如果你想要解析一个对象,你应该给项目一个键,例如,我在这个例子中使用了索引

let combinedScenesObj = _.reduce(sections, (prev, section, index) =>  {
  return {...prev, [index]:[...section.guideScenes]};
}, {})
// { 0: ["hello"], 1: ["world"], 2: ["hi", "yo"] }