【发布时间】:2015-01-09 18:04:46
【问题描述】:
我正在尝试使用带有以下 javascript 程序的 for 循环用值填充数组。
var x = [];
var y = [];
for(i = 0; i < 10; i++){
y[0] = (i);
y[1] = (i + 1);
x[i] = y;
console.log('x[' + i + '] = ' + x[i]);
}
console.log('');
console.log('x[] =');
console.log(x);
输出是。
x[0] = 0,1
x[1] = 1,2
x[2] = 2,3
x[3] = 3,4
x[4] = 4,5
x[5] = 5,6
x[6] = 6,7
x[7] = 7,8
x[8] = 8,9
x[9] = 9,10
x[] =
[ [ 9, 10 ],
[ 9, 10 ],
[ 9, 10 ],
[ 9, 10 ],
[ 9, 10 ],
[ 9, 10 ],
[ 9, 10 ],
[ 9, 10 ],
[ 9, 10 ],
[ 9, 10 ] ]
问题在于,在 for 循环中,y[0] 和 y[1] 数组元素根据当前索引 (i) 获取值,并且 x[i] 数组元素填充了当前 y[ ] 如第一个打印输出所示。这是我所期待的,也是我希望 X[] 被填充的方式。
在 for 循环之外,所有 x[i] 元素的值都基于最后一个索引 (i) 值 9,如第二个打印输出所示。我做错了什么?
【问题讨论】:
-
您没有按值引用
y。 -
y始终是同一个引用 -
来自 NewBe 感谢所有出色的答案。将更深入地研究引用和传递值。
标签: javascript arrays multidimensional-array