【问题标题】:Deeply nested Arrays and objects深度嵌套的数组和对象
【发布时间】:2019-10-22 18:35:57
【问题描述】:

我正在尝试解构一个对象。我想将一组对象放入作业中。我必须对数组做一个 reduce 吗?

我试图解构该对象,但它只显示鞋子数组中的第一个对象。

const currentInventory = [
  {
    name: 'Brunello Cucinelli',
    shoes: [
      {name: 'tasselled black low-top lace-up', price: 1000},
      {name: 'tasselled green low-top lace-up', price: 1100},
      {name: 'plain beige suede moccasin', price: 950},
      {name: 'plain olive suede moccasin', price: 1050}
    ]
  },
  {
    name: 'Gucci',
    shoes: [
      {name: 'red leather laced sneakers', price: 800},
      {name: 'black leather laced sneakers', price: 900}
    ]
  }
];

for(var{name:designerName, shoes:[{name:shoeName,price}]} of currentInventory){
    console.log (designerName, shoeName, price)
}

【问题讨论】:

  • 这个问题在这里可能已经有了答案:stackoverflow.com/questions/50918251/…
  • "我必须对数组进行归约吗?"一种可能性。解构不适用于可变大小的结构,从逻辑上讲,我不明白你会如何想象它会给你带来比shoes 的第一个元素更多的东西。
  • @Brian 实际上回答了我的问题;但是,它与我之前已经拥有的代码无关。不过还是谢谢你的帮助。
  • @ASDFGerte 我想要高效的代码。然而,我是编码新手,无休止的 If else 循环使阅读和理解代码变得困难。感谢您的意见,我将在未来应用它。

标签: javascript


【解决方案1】:

你必须为shoes数组做另一个循环:

for (var { name: designerName, shoes } of currentInventory) {
  for (var { name: shoeName, price } of shoes) {
    console.log(designerName, shoeName, price)
  }
}

【讨论】:

  • 虽然我试过了,但我想我没有你是一个救生员。
  • 我刚试了一下,它几乎得到了我需要的答案。
猜你喜欢
  • 2023-01-13
  • 2020-07-12
  • 2019-01-29
  • 2016-05-18
  • 1970-01-01
  • 2016-06-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多