我想将这些状态对象加载到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;
如果这太基础了,我深表歉意,但我确实对此表示怀疑。
答案 0 :(得分:1)
要实现的最短的ES6版本之一是:
state.List.forEach(listItem => finalArr.push([].concat([listItem.name], listItem.sub)));
在这里,我们遍历List
数组,并将其推入finalArr
一个新数组,该数组是通过将name
和sub
对象属性的值合并到一个新数组中而生成的。最后,我们有一个数组数组(每个子数组是从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);