javascript - 将数组格式化为对象 javascript
问题描述
我有两个数组 ( x
, y
) 有一些数字序列,两个数组都来自相同的长度。现在我需要将两个数组的元素组合成一个对象。要创建对象,我有一个函数f
如何快速将其转换为单个对象数组
x = [1,2,3,4]
y = [5,6,7,8]
f = function(x,y) { return { foo: x, bar: y } }
... some magic ...
result = [{ foo: 1, bar: 5},
{ foo: 2, bar: 6},
{ foo: 3, bar: 7},
{ foo: 4, bar: 8}]
当然这可以使用
const array = []
for (let i = 0; i <= x.length; i++) {
array.push(f(x[i],y[i]))
}
但我想知道是否有更“清洁”的方式?使用 .map 例如?或者这是要走的路?
-Edit- 谢谢大家,不知道map
也可以将索引作为参数传递。
解决方案
您可以使用变量名称作为键构建一个对象,并迭代对象的所有条目,并将数组的索引作为结果数组对象的索引。
这适用于任意长度的数组。
var foo = [1, 2, 3, 4],
bar = [5, 6, 7, 8],
result = Object
.entries({ foo, bar })
.reduce((r, [k, a]) => a.map((v, i) => Object.assign(r[i] || {}, { [k]: v })), []);
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
推荐阅读
- javascript - ResourceNotFoundException:用户池 xyz 不存在 - Cognito adminConfirmSignup
- r - 如何在函数中检查和更改 R 中的数据类型。(动态的)
- python - 如何在 Amazon1 EC2 实例 (Cloud9) 上安装/配置 python 3.7?
- android - 如何在回调中获取改造调用的主体
- python - Jinja2 - if 语句的表行操作问题
- javascript - 如何将pdf作为文件作为表单数据发送到服务器
- python - 在 tesseract 上使用图像串连的问题
- java - 如何将 JSON Spring Boot 日志显示为表格格式的消息中的单独字段
- react-native - 如何使用 flexbox 和页面 controllview 设计排名
- azure - azure 上的应用服务似乎很慢