I s*_*ame 1 javascript arrays object google-apps-script
如果我有2个数组(properties
和data
):
properties = [name, height, weight, zone];
data = [
['Luke Skywalker', 123, 112, 'B'],
['Jawa', 12, 8, 'B'],
['Hutt', 200, 999, 'C']
];
Run Code Online (Sandbox Code Playgroud)
并且我想创建一个对象数组(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'
}
];
Run Code Online (Sandbox Code Playgroud)
通常,我只会使用map over data[]
,创建一个temp
对象,然后将其推入statistics[]
。
但是由于我知道所有其他条目data
都具有相同的维度和数据类型。我也知道从properties
到一对一的映射data
。javascript中是否有内置函数,该函数以一对一映射输出对象数组?相似properties.mapAll(data)
或相似的东西。我希望不使用库,因为我是.html
在GAS中的模板上执行此操作的。
如果属性总是会name
,height
,weight
和zone
那么你可以使用数组解构申请一个占位符名称和内存储的值给它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)
Run Code Online (Sandbox Code Playgroud)
编辑基于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)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
100 次 |
最近记录: |