Javascript 在一行中复制数组
我想创建一个数组,一个现有数组的副本,但不是它的实例。我怎么能在一行中做到这一点Javascript 在一行中复制数组,javascript,arrays,Javascript,Arrays,我想创建一个数组,一个现有数组的副本,但不是它的实例。我怎么能在一行中做到这一点 array1 = new Array('orange', 'red', 'blue', 'green'); array2 = new Array.apply(this, array1); // Uncaught TypeError: function apply() is not a constructor 就是你要找的方法。在定义数组时,您可能还希望使用文字 现在有 array1.join() === ar
array1 = new Array('orange', 'red', 'blue', 'green');
array2 = new Array.apply(this, array1);
// Uncaught TypeError: function apply() is not a constructor
就是你要找的方法。在定义数组时,您可能还希望使用文字
现在有
array1.join() === array2.join(); // true
array1 === array2; // false
就是你要找的方法。在定义数组时,您可能还希望使用文字
现在有
array1.join() === array2.join(); // true
array1 === array2; // false
省略
new
以使apply
工作(否则它将被解释为new(Array.apply)(…)
)。由于数组
构造函数不需要新的
,也可以作为函数调用,因此它将非常简单:
array1 = new Array('orange', 'red', 'blue', 'green');
array2 = Array.apply(this, array1);
相关问题:
但是,您根本不需要使用数组构造函数,特别是因为它不能很好地处理单数值元素数组。更好:
var array1 = ['orange', 'red', 'blue', 'green'];
var array2 = array1.slice();
省略
new
以使apply
工作(否则它将被解释为new(Array.apply)(…)
)。由于数组
构造函数不需要新的
,也可以作为函数调用,因此它将非常简单:
array1 = new Array('orange', 'red', 'blue', 'green');
array2 = Array.apply(this, array1);
相关问题:
但是,您根本不需要使用数组构造函数,特别是因为它不能很好地处理单数值元素数组。更好:
var array1 = ['orange', 'red', 'blue', 'green'];
var array2 = array1.slice();
返回一个新数组,该数组包含从参数中给定的索引开始的源数组中的所有项,在本例中该索引为零,因此整个数组都为零
请注意,如果任何数组项本身是对象(例如多维数组),则新数组仍将指向这些数组的同一实例:
array1 = [1,[2,3]];
array2 = array1.slice(0);
array2[0] = 4;
array2[1][0] = 5;
// array1 is now [1,[5,3]]!
返回一个新数组,该数组包含从参数中给定的索引开始的源数组中的所有项,在本例中该索引为零,因此整个数组都为零
请注意,如果任何数组项本身是对象(例如多维数组),则新数组仍将指向这些数组的同一实例:
array1 = [1,[2,3]];
array2 = array1.slice(0);
array2[0] = 4;
array2[1][0] = 5;
// array1 is now [1,[5,3]]!
根据,您只需要执行一个数组切片
var array2 = array1.slice(0);
这篇文章还涉及深度克隆。根据,您只需要执行一个数组切片
var array2 = array1.slice(0);
这篇文章还涉及深度克隆。使用
array.slice
var copy = original.slice(0);
有关使用
array.slice的详细信息
var copy = original.slice(0);
更多关于“现有数组的副本而不是他的实例”的信息,这意味着什么?请使用您的标题显示您试图解决的问题。这与论坛中的主题行不同。标题应该是可搜索的。没有人会搜索“我怎么做?”在您的情况下,您希望将现有阵列复制到新阵列。这是什么新阵列。应用
@Derek朕會功夫: 这是他需要解决的问题…“一个存在数组的副本,但不是他的实例”这意味着什么?请用你的标题来说明你试图解决的问题。这与论坛中的主题行不同。标题应该是可搜索的。没有人会搜索“我怎么做?”在您的情况下,您希望将现有阵列复制到新阵列。这是什么新阵列。应用@Derek朕會功夫: 这是他需要解决的问题…+1至少包括在大多数副本中找不到的有用信息。+1至少包括在大多数副本中找不到的有用信息。