总损失。
我想做的是获取如下所示的数组。
0: {运行: '山姆'. 游泳: '火腿'},
1: {跑步: '汤姆', 游泳:"比尔"},
2: {跑步: '吉姆',游泳: '山姆},
......
但是当我把代码放在这里时,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);
您可以获取所有名称和所有键,并采用计算的迭代长度。
该值与提醒运算符%
和数组的长度一起获取,以防止未定义的值。
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; }