Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将状态对象放入二维数组中?_Javascript_Reactjs - Fatal编程技术网

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

Javascript 如何将状态对象放入二维数组中?,javascript,reactjs,Javascript,Reactjs,我想将这些状态对象加载到二维数组中。我需要以以下方式使用它们: [ [ "josie", "ally", "fred" ], [ "edward", "ally", "fred", "goolly" ] ] 我需要这样做,因为我需要一种相对于子列表名称引用子列表的方法 class App extends Component { state = { List: [ { name:

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

[
  [
    "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;
类应用程序扩展组件{
状态={
名单:[
{
姓名:“乔西”,
分:[
“盟友”,
“弗雷德”
] 
},
{
姓名:“爱德华”,
分:[
“盟友”,
“弗雷德”,
“咕噜咕噜”
] 
}
]
}
render(){
返回(
);
}
}
导出默认应用程序;

如果这太基本了,我很抱歉,但我真的很头疼。

要实现这一点,最短的ES6版本之一是:

state.List.forEach(listItem => finalArr.push([].concat([listItem.name], listItem.sub)));
在这里,我们迭代
List
array并推送到
finalArr
一个新数组,我们通过将
name
sub
对象属性的值合并到一个新数组中来生成该数组。最后,我们有一个数组数组(每个子数组都是从
state.List
中的独立项生成的)。以下是工作示例:

const state={
名单:[
{
姓名:“乔西”,
分:[
“盟友”,
“弗雷德”
] 
},
{
姓名:“爱德华”,
分:[
“盟友”,
“弗雷德”,
“咕噜咕噜”
] 
}
]
}
警察终结者=[];
state.List.forEach(listItem=>finalArr.push([].concat([listItem.name],listItem.sub));

控制台日志(finalArr)您的第一个代码块无效。假设它们是弦,你是想让第一个变成第二个还是相反?