从数组填充另一个数组 - Javascript

ina*_*ina 21 javascript

我想在JS中做一件非常简单的事情(将一个数组的值分配给另一个数组),但不知何故,数组bar的值似乎根本没有受到影响.

当然,我尝试的第一件事就是bar = ar;- 没有用,所以我尝试手动循环...仍然无法正常工作.

我没有理解Javascript的怪癖!请帮忙!!


var ar=["apple","banana","canaple"];
var bar;

for(i=0;i<ar.length;i++){
    bar[i]=ar[i];
}
alert(ar[1]);

而且,这里是小提琴:http://jsfiddle.net/vGycZ/


(以上是一个简化.实际的数组是多维的.)

CMS*_*CMS 51

您的代码无效,因为您没有初始化bar:

var bar = [];
Run Code Online (Sandbox Code Playgroud)

你也忘了声明你的i变量,这可能有问题,例如,如果代码在函数内,i最终将成为一个全局变量(总是使用var:).

但是,您可以通过使用该slice方法创建第一个数组的副本来避免循环:

var arr = ["apple","banana","canaple"];
var bar = arr.slice();
Run Code Online (Sandbox Code Playgroud)


Pra*_*ana 7

复制或克隆javascript-array-object

var a = [ 'apple', 'orange', 'grape' ];
 b = a.slice(0);
Run Code Online (Sandbox Code Playgroud)


Lui*_*ito 5

在ES6中,您可以使用Array.from

var ar = ["apple","banana","canaple"];
var bar = Array.from(ar);
alert(bar[1]); // alerts 'banana'
Run Code Online (Sandbox Code Playgroud)