我正在努力解决这个问题。本质上,我在对象中有一个键数组和一个值数组,我希望这些值具有键。
以下是我迄今为止最好的尝试 - 通常使用 python,所以这让我有点困惑。
var numbers = [3, 4, 5,6]
var selection = [[1, 2, 3, 4], [6, 5, 4, 3], [2, 9, 4]]
var result = [];
for (arr in selection) {
numbers.forEach(function (k, i) {
result[k] = arr[i]
})
};
console.log(result);
我要找的输出是这样的,
results = [{3:1,4:2,5:3,6:4}, {..},..]
喜欢获得正确输出的一些指示。
注意。这是谷歌应用脚本!所以不能使用某些 javascript 函数(我认为 MAP 不起作用,不确定 reduce)。
干杯!
最佳答案
创建一个单独的函数,它将键和值作为参数,并使用 reduce()
将其转换为对象。然后在 selections
上应用 map()
并使用该函数为每个子数组创建一个对象
var numbers = [3, 4, 5,6]
var selection = [[1, 2, 3, 4], [6, 5, 4, 3], [2, 9, 4]]
function makeObject(keys, values){
return keys.reduce((obj, key, i) => ({...obj, [key]: values[i]}),{});
}
const res = selection.map(x => makeObject(numbers, x));
console.log(res)
关于javascript - 将键分配给数组对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60481883/