Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 生成js对象名称并向其添加值_Javascript_Arrays_Algorithm_Loops_For Loop - Fatal编程技术网

Javascript 生成js对象名称并向其添加值

Javascript 生成js对象名称并向其添加值,javascript,arrays,algorithm,loops,for-loop,Javascript,Arrays,Algorithm,Loops,For Loop,我生成两个随机数组,我需要将其中的数字添加到数组中,我需要用100个对象填充数组,将它们命名为从n1到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(Ma

我生成两个随机数组,我需要将其中的数字添加到数组中,我需要用100个对象填充数组,将它们命名为从
n1到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]},
    ];
var realArray=[],
imagArray=[];
对于(var i=0,t=100;i您可以使用PointValue作为对象,因此您可以在for循环上进行插入,如下所示:

var pointsValues = {}

for(var j = 0; j<100; j++){
    var index = "n"+(j+1);
    pointsValues[index] = {r: realArray[j], i: imagArray[j]};
}
var pointsValues={}

对于(var j=0;j使用
var pointsValues=[…n1={r:realArray[0],i:imagArray[0]},
正在创建一个名为
n1
的全局变量(至少,如果您不是在严格模式下)。我认为您需要的是一个简单的对象,因为数组索引只能是数字,而对象键通常是字符串。您可以使用已知的括号符号(
foo['n1']
)访问对象的索引。因此,可能的解决方案如下:

var realArray=[],
imagArray=[];

对于(var i=0,t=100;i什么意思是
n1
?它是一种索引?还是应该是一个对象的键?@NinaScholz它是一个对象的键到底是什么?数组还是对象?除了生成
点值
?@NinaScholz对象之外,其他用途是否需要
realArray
imagArray
当向对象添加从
n1到n100的键时,
realArray[n]
imagArray[n]
的ent索引是。但是,请在使用前通过
var
关键字声明
j
(或
let
分别在较新的JavaScript中声明
const
)@SVSchmidt噢,对不起,我看不到!谢谢你为什么有两个
循环,而你可以用一个来做呢?@jordan运行第一个循环是从OP的初始代码中提取的。这就是我所说的“可能有更合适的解决方案”.除了创建对象,我们没有关于他将如何处理数组的信息。如果只是这样,我们也不需要创建数组。