美文网首页
关于ES6的flat(扁平化数组)

关于ES6的flat(扁平化数组)

作者: 泪滴在琴上 | 来源:发表于2022-04-20 14:27 被阅读0次

一个部门JSON数据中,属性名是部门id,属性值是个部门成员id数组集合,现在要把有部门的成员id都提取到一个数组集合中。

const deps = {
'采购部':[1,2,3],
'人事部':[5,8,12],
'行政部':[5,14,79],
'运输部':[3,64,105],
}
let member = [];
for (let item in deps){
    const value = deps[item];
    if(Array.isArray(value)){
        member = [...member,...value]
    }
}
member = [...new Set(member)]

可以考虑使用Object.values和flat方法实现:

const deps = {
    '采购部':[1,2,3],
    '人事部':[5,8,12],
    '行政部':[5,14,79],
    '运输部':[3,64,105],
}
let member = Object.values(deps).flat(Infinity);

1、Object.values()返回一个数组,其元素是在对象上找到的可枚举属性值。属性的顺序与通过手动循环对象的属性值所给出的顺序相同。
2、其中使用Infinity作为flat的参数,使得无需知道被扁平化的数组的维度。
3、flat方法不支持IE浏览器。

相关文章

网友评论

      本文标题:关于ES6的flat(扁平化数组)

      本文链接:https://www.haomeiwen.com/subject/yzeisrtx.html