我想在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)
在ES6中,您可以使用Array.from:
var ar = ["apple","banana","canaple"];
var bar = Array.from(ar);
alert(bar[1]); // alerts 'banana'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
51559 次 |
| 最近记录: |