首页 > 解决方案 > 如何将状态对象放入二维数组?

问题描述

我想将这些状态对象加载到二维数组中。我需要它们以下列方式:

[
  [
    "josie",
    "ally",
    "fred"
  ],
  [
    "edward",
    "ally",
    "fred",
    "goolly"
  ]
]

我需要这种方式,因为我需要一种方法来引用相对于子列表名称的子列表。

 class App extends Component {

  state = {
    List: [
      {
        name: "josie", 
        sub: [
          "ally",
          "fred"
        ] 
      },
      {
        name: "edward", 
        sub: [
          "ally",
          "fred",
          "goolly"
        ] 
      }
    ]
  }

  render() {

    return (
      <div>
      </div>
    );
  }
}

export default App;

如果这太基本了,我深表歉意,但我真的在这方面打我的头。

标签: javascriptreactjs

解决方案


要实现的最短的 ES6 版本之一如下:

state.List.forEach(listItem => finalArr.push([].concat([listItem.name], listItem.sub)));

在这里,我们遍历List数组并推送到finalArr一个新数组,我们通过将对象属性的值合并到一个新数组中来生成该数组namesub最后我们有一个数组数组(每个子数组都是从 中的单独项目生成的state.List)。这是工作示例:

const state = {
    List: [
      {
        name: "josie", 
        sub: [
          "ally",
          "fred"
        ] 
      },
      {
        name: "edward", 
        sub: [
          "ally",
          "fred",
          "goolly"
        ] 
      }
    ]
}
const finalArr = [];
state.List.forEach(listItem => finalArr.push([].concat([listItem.name], listItem.sub)));
console.log(finalArr);


推荐阅读