【问题标题】:nested array of json of nested arrays into single array of json将嵌套数组的 json 嵌套数组转换为单个 json 数组
【发布时间】:2018-04-22 17:15:24
【问题描述】:
 var object = [{id:1, users:[{name:'john', name:'smith', name:'frank'}, {id:2, users:[{name:'lary'}, {name:'steve'}, {name:'joe'}]}]}]

输出:

allUsers = [{name:'john'}, {name:'smith'}, {name:'frank'}, {name:’lary'}]

需要 javascript 中的答案。 也使用 lodash

【问题讨论】:

  • 您好,那您恐怕来错地方了。尝试自己做,如果失败了,请回到这里寻求帮助,展示你失败的地方。
  • 这个对象有一个奇怪的结构...
  • 感谢您的建议
  • 如果我的回答不满意,请评论。

标签: javascript


【解决方案1】:

我没有使用过 lodash,但是从文档中我发现了一个“flatten” - 方法,看看这里: https://lodash.com/docs/4.17.5#flatten

将数组扁平化一层。

希望对你有帮助。

编辑:好的,这里是代码示例(你的花括号有点不对,所以我在这个例子中修复了它们。我希望这就是你要找的。 但基本上使用地图,从单个对象中获取用户数组,然后将结果展平。

var object = [
    {
        id:1,
        users: [{name:'john'}, {name:'smith'}, {name:'frank'}]
    }, 
    {
        id:2, 
        users: [{name:'lary'}, {name:'steve'}, {name:'joe'}]
    }
];

const flattenUsers = lodash.flatten(object.map(id => id.users));
console.log(flattenUsers);

/*
Output:
[ { name: 'john' },
  { name: 'smith' },
  { name: 'frank' },
  { name: 'lary' },
  { name: 'steve' },
  { name: 'joe' } ]
*/

【讨论】:

    猜你喜欢
    • 2021-04-06
    • 1970-01-01
    • 1970-01-01
    • 2018-05-15
    • 2020-02-16
    • 2021-09-26
    • 1970-01-01
    • 2020-09-29
    • 1970-01-01
    相关资源
    最近更新 更多