如何将状态对象放入二维数组?

时间:2018-07-13 23:54:25

标签: javascript reactjs

我想将这些状态对象加载到2d数组中。我需要以以下方式使用它们:

[
  [
    "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;

如果这太基础了,我深表歉意,但我确实对此表示怀疑。

1 个答案:

答案 0 :(得分:1)

要实现的最短的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);