gpt4 book ai didi

Javascript 一对一对象映射(内置函数?)

转载 作者:行者123 更新时间:2023-11-30 07:01:39 24 4
gpt4 key购买 nike

如果我有 2 个数组(propertiesdata):

properties = [name, height, weight, zone];

data = [
['Luke Skywalker', 123, 112, 'B'],
['Jawa', 12, 8, 'B'],
['Hutt', 200, 999, 'C']
];

我想创建一个对象数组(statistics):

statistics = [{
name: 'Luke Skywalker',
height: 123,
weight: 112,
zone: 'B'
},
{
name: 'Jawa',
height: 12,
weight: 8,
zone: 'B'
}, {
name: 'Hutt',
height: 200,
weight: 999,
zone: 'C'
}
];

通常我只是在 data[] 上使用 map,创建一个 temp 对象,然后将其推送到 statistics[]

但是因为我知道 data 中的所有其他条目都具有相同的维度和数据类型。我还知道从 propertiesdata 存在一对一的映射。 javascript中是否有一个内置函数可以输出具有一对一映射的对象数组?像 properties.mapAll(data) 之类的东西。我希望不要使用库,因为我在 GAS 中的模板 .html 上执行此操作。

最佳答案

如果属性总是name, height, weight & zone 那么你可以使用Array Destructuring应用占位符名称​​并将值存储到 map 中。

const data = [['Luke Skywalker', 123, 112, 'B'], ['Jawa', 12, 8, 'B'], ['Hutt', 200, 999, 'C']];

const stats = data.map(([name, height, weight, zone]) => ({
name,
height,
weight,
zone
}))

console.log(stats)

编辑 基于 GAS 上的脚本。这是相同的方法,但 es5。

var data = [['Luke Skywalker', 123, 112, 'B'], ['Jawa', 12, 8, 'B'], ['Hutt', 200, 999, 'C']];

var stats = data.map(function(dataArray) {
return {
name: dataArray[0],
height: dataArray[1],
weight: dataArray[2],
zone: dataArray[3]
}
})

console.log(stats)

关于Javascript 一对一对象映射(内置函数?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55394592/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com