用于对象值索引的 JS 变量不返回任何值



总损失。

我想做的是获取如下所示的数组。

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; }

最新更新