我生成两个随机数组,我需要将数字添加到数组中,我需要填充100个对象,从n1 to n100
命名并使它们看起来像这样:
n1...n100 = {r: realArray[0...100], i: imagArray[0...100])}
当然,我可以添加它们,就像我们做的时候一样:
var realArray = [],
imagArray = [];
for (var i=0, t=100; i<t; i++) {
realArray.push(Math.floor(Math.random() * t) - 50);
imagArray.push(Math.floor(Math.random() * t) - 50);
}
var pointsValues = [
n1 = {r: realArray[0], i: imagArray[0]},
n2 = {r: realArray[1], i: imagArray[1]},
n3 = {r: realArray[2], i: imagArray[2]},
n4 = {r: realArray[3], i: imagArray[3]},
n5 = {r: realArray[4], i: imagArray[4]},
n6 = {r: realArray[5], i: imagArray[5]},
n7 = {r: realArray[6], i: imagArray[6]},
n8 = {r: realArray[7], i: imagArray[7]},
n9 = {r: realArray[8], i: imagArray[8]},
n10 = {r: realArray[9], i: imagArray[9]},
n11 = {r: realArray[10], i: imagArray[10]},
n12 = {r: realArray[11], i: imagArray[11]},
//........................................,
//........................................,
//........................................,
n100 = {r: realArray[100], i: imagArray[100]},
];
我知道必须有一个方法来循环,但我无法弄清楚如何做到这一点,从n1 to n100
更改名称的想法让我感到困惑。
答案 0 :(得分:0)
您可以使用 pointValues 作为对象,因此您可以在for循环上执行插入操作,如下所示:
var pointsValues = {}
for(var j = 0; j<100; j++){
var index = "n"+(j+1);
pointsValues[index] = {r: realArray[j], i: imagArray[j]};
}
因此您可以使用 pointsValues.n1 或 pointsValues [&#39; n1&#39;] 访问这些值,并使用foreach迭代!
答案 1 :(得分:0)
您正在使用var pointsValues = [ ... n1 = {r: realArray[0], i: imagArray[0]},
创建一个名为n1
的全局变量(至少,如果您没有处于严格模式)。我认为你需要的是一个简单的对象,因为数组索引只能是数字,而对象键通常是字符串。您可以使用已知的括号表示法(foo['n1']
)来访问对象的索引。因此,可能的解决方案如下:
var realArray = [],
imagArray = [];
for (var i=0, t=100; i<t; i++) {
realArray.push(Math.floor(Math.random() * t) - 50);
imagArray.push(Math.floor(Math.random() * t) - 50);
}
var result = {};
var len = realArray.length;
for (var i = 0; i < len; i++) {
result['n' + (i + 1)] = {
r: realArray[i],
i: imagArray[i],
};
}
console.log(result);
console.log(result['n50']);
当然,还有其他解决方案可能更适合,但这取决于确切的用例。