Javascript 我想用另一个数组值替换所有值,两个数组的大小相同

Javascript 我想用另一个数组值替换所有值,两个数组的大小相同,javascript,Javascript,例如: 将Array2替换为Array1值后 结果数组应为 var Array1=array(1,2,3,4,5,6); var Array2=array(7,8,9,10,11,12); 使用: 这将复制Array2,而不是引用它,因此如果对Array2进行更改,它们将不会反映在Array1中 ES6之前的版本(使用): ES6之后(使用): 在本例中,可以排除CONST类型的数组的值,并将数组的值传递给一个或另一个。 我有这个问题 Array1.splice(0, Array1.leng

例如:

Array2
替换为
Array1
值后 结果数组应为

var Array1=array(1,2,3,4,5,6);
var Array2=array(7,8,9,10,11,12);
使用:

这将复制
Array2
,而不是引用它,因此如果对
Array2
进行更改,它们将不会反映在
Array1

ES6之前的版本(使用):

ES6之后(使用):
在本例中,可以排除CONST类型的数组的值,并将数组的值传递给一个或另一个。 我有这个问题

Array1.splice(0, Array1.length, ...Array2);

好的,那么问题出在哪里。?Array1=Array2;我相信这样做的问题是现在两个数组都被引用了。更改Array1中的值也将更改Array2中的相同值。即使OP没有提到,你试过什么吗?在这种情况下,很有可能你会尝试的第一件事就是答案……这对我来说很有用。此答案应设置为正确。这不会替换实际数组,而是替换指向新数组的变量指针,这可能不太理想,例如,由于其他代码部分已引用原始指针,因此无法指向内存中的其他位置,因此,这里的第一个答案可能是Andy和@broofa的答案之间的巨大差异。两者在不同的语境中都是正确的。Andy创建一个新的数组对象,其内容与第二个数组相同,只引用一个新对象,并放弃对第一个数组对象的引用。broofa保留第一个数组对象,但更改内容以匹配第二个数组对象。因此,代码中其他地方对第一个数组对象的任何其他引用都可以看到新值。OP的需求尚不清楚。这应该是首选答案,因为它实际上回答了替换整个数组内容的问题,而这反过来又反映在代码中其他地方对数组的所有引用中。我建议您在答案中添加一些解释性文本,否则您可能会将其作为“低质量”删除(即使这可能是一个正确的答案)!
Array1 = Array2.slice(0);
Array1.length = 0;                  // Clear contents
Array1.push.apply(Array1, Array2);  // Append new contents
Array1.splice(0, Array1.length, ...Array2);
fields = [1,2,3,4]

var t = fields.filter(n => {
  return n != 4;
});

// t => [1,2,3]

fields.splice(0, fields.length, ...t);

console.log(fields);//[1,2,3]