javascript - 如何将状态对象放入二维数组?
问题描述
我想将这些状态对象加载到二维数组中。我需要它们以下列方式:
[
[
"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;
如果这太基本了,我深表歉意,但我真的在这方面打我的头。
解决方案
要实现的最短的 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);
推荐阅读
- redux - 如果发生令牌刷新,则重新启动 API 请求队列
- forms - 如何获取 vue treeselect 值
- c# - 我们可以从单个 TFS 构建中触发多个代理/侦听器吗
- javascript - 如何在谷歌图表上实现 3d 饼图?
- python - 从稀疏数据创建 python 列表推导
- tensorflow.js - Tensorflow.js 可以用于人脸识别吗?
- c# - 为什么 C# VS2017 智能感知不能与 var 和本地函数一起使用?
- javascript - 如何显示有多少人在我的网站上注册?
- r - 运行更快的计算
- javascript - React js,打印出react组件的状态不为空,但是调用this.state时,所有数据都没有了