完全迷失了。
我想做的是得到下面这样的数组。
0:{运行:'sam‘。游泳:'ham'},
1:{跑:'tom',游:‘bill’},
2:{跑:'jim',游:'sam},
.
但是当我把代码放在这里时,obj[name1[o]] = name2[some(name2)];,特别是值部分,就不能工作了。
为什么我不能在这句话中使用一个变量作为对象的值的索引?
const arr = [];
const obj = {}
var name1 = ['run','swim'];
var name2 = ['sam','ham','tom','bill','jim'];
function some(a){
for(var n = 0; n < a.length; n++){
n //simplified calculating
}
}
for(var a = 0; a<3; a++){
arr[a] = obj;
for(var o=0; o<2; o++){
obj[name1[o]] = name2[some(name2)];
}
}
console.log(arr);
发布于 2020-05-20 23:17:11
您可以采用所有名称和所有键,并采用计算出的长度进行迭代。
这些值与数组的reminder operator %和长度一起获取,以防止未定义的值。
var keys = ['run', 'swim'],
names = ['sam', 'ham', 'tom', 'bill', 'jim'],
result = [],
length = Math.ceil(names.length / keys.length) * keys.length;
for (let i = 0; i < length; i++) {
let j = Math.floor(i / keys.length);
if (!result[j]) result[j] = {};
result[j][keys[i % keys.length]] = names[i % names.length];
}
console.log(result);.as-console-wrapper { max-height: 100% !important; top: 0; }
https://stackoverflow.com/questions/61916449
复制相似问题