作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我确实有一个包含一些字段的对象,其中三个是数组。我想一次性映射它们。
让我展示一下我现在是怎么做的:
containerNames = this.state.fileContent.xContainers.map(xContainer => <Container containerName={xContainer} />);
containerNames.push(this.state.fileContent.yContainers.map(yContainer => <Container containerName={yContainer} />));
containerNames.push(this.state.fileContent.zContainers.map(zContainer => <Container containerName={zContainer} />));
对我来说,它似乎确实可以以不同的方式制作。用一个 lambda?
最佳答案
OP 中的代码将生成类似于 [1, 2, 3, [4, 5, 6], [7, 8, 9]]
的内容,我希望这不是您想要的.如果你想要 [1, 2, 3, 4, 5, 6, 7, 8, 9]
,使用这个:
const containerNames = ["xContainers", "yContainers", "zContainers"].
flatMap(field => this.state.fileContent[field].map(...));
如果你想要[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
,那么改变flatMap
进入 map
。
关于JavaScript 如何将两个数组映射到一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56594180/
我是一名优秀的程序员,十分优秀!