为了账号安全,请及时绑定邮箱和手机立即绑定

如何制作多个嵌套对象的数组?

如何制作多个嵌套对象的数组?

蝴蝶不菲 2021-05-10 16:22:38
我有这样一个对象。let Filus = {     male: {    hat: [1],    jacket: [2],    pants: [3],    shoes: [4],    suit: [5]  }};我想从这个对象得到这个数组。let Filus = [1,2,3,4,5];怎么做?
查看完整描述

3 回答

?
明月笑刀无情

TA贡献1828条经验 获得超4个赞

只需使用Object.values和flat-即使您不知道嵌套对象的键也可以使用:


let Filus = {

  male: {

    hat: [1],

    jacket: [2],

    pants: [3],

    shoes: [4],

    suit: [5]

  }

};


const res = Object.values(Object.values(Filus)[0]).flat();

console.log(res);

ES5语法:


var Filus = {

  male: {

    hat: [1],

    jacket: [2],

    pants: [3],

    shoes: [4],

    suit: [5]

  }

};


var res = Object.keys(Filus[Object.keys(Filus)[0]]).map(function(key) { 

  return Filus[Object.keys(Filus)[0]][key];

}).reduce(function(acc, curr) {

  return acc.concat(curr);

});


console.log(res);

如果您拥有密钥,这也很容易:


let Filus = {

  male: {

    hat: [1],

    jacket: [2],

    pants: [3],

    shoes: [4],

    suit: [5]

  }

};


const res = Object.values(Filus.male).flat();

console.log(res);

ES5语法:


var Filus = {

  male: {

    hat: [1],

    jacket: [2],

    pants: [3],

    shoes: [4],

    suit: [5]

  }

};


var res = Object.keys(Filus.male).map(function(key) { 

  return Filus.male[key];

}).reduce(function(acc, curr) {

  return acc.concat(curr);

});


console.log(res);


查看完整回答
反对 回复 2021-05-27
?
30秒到达战场

TA贡献1828条经验 获得超6个赞

您可以male使用来获取嵌套对象的值,Object.values()然后使用flat()


let Filus = { male : { hat: [1], jacket: [2], pants: [3], shoes: [4], suit: [5] } };


const res = Object.values(Filus.male).flat();

console.log(res)

您也可以不flat()使用concat()和传播运算符。


let Filus = { male : { hat: [1], jacket: [2], pants: [3], shoes: [4], suit: [5] } };


const res = [].concat(...Object.values(Filus.male));

console.log(res)


查看完整回答
反对 回复 2021-05-27
  • 3 回答
  • 0 关注
  • 94 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信