总计丢失。
我想做的就是获得下面的数组。
0:{run:'sam'。游泳:“火腿”},
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);
您可以使用所有名称和所有键,并可以计算出迭代的长度。
该值与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);