Javascript 如何将值从一个数组加载到另一个数组中,而不更改接收新值的数组的内存地址?

Javascript 如何将值从一个数组加载到另一个数组中,而不更改接收新值的数组的内存地址?,javascript,Javascript,如果我这样做: a = [] b = [1, 2, 3] a = b a随后将引用b 我想将b中的所有值复制到a中,而不更改任何内存地址/引用 let a = b.map(x => x); .map()函数将使用通过传入回调函数从源元素生成的值创建一个新数组 如评论中所述 let a = b.slice(); 几乎完全一样 基本上,这为您节省了 let a = []; 因为一个全新的空数组和另一个一样好。但是,如果您真的想显式初始化空数组,那么可以使用 b.forEach(x, i

如果我这样做:

a = []
b = [1, 2, 3]
a = b
a
随后将引用
b

我想将
b
中的所有值复制到
a
中,而不更改任何内存地址/引用

let a = b.map(x => x);
.map()
函数将使用通过传入回调函数从源元素生成的值创建一个新数组

如评论中所述

let a = b.slice();
几乎完全一样

基本上,这为您节省了

let a = [];
因为一个全新的空数组和另一个一样好。但是,如果您真的想显式初始化空数组,那么可以使用

b.forEach(x, i) { a[i] = x; });

如果要在不丢弃初始数组的情况下就地填充
a
,则可以简单地循环
b
并添加
a
中的所有项:

var a=[]
变量b=[1,2,3]
var firstA=a//获取初始元素
b、 财务主任(职能(项目){
这个.推(项)

},a);// 您可以在不更改
a
b
参考的情况下推送这些值

var a = [],
    b = [1, 2, 3];

a.push(...b);

A=b.slice()。它将创建元素的卷影副本,而不更改原始副本

为什么不干脆
a=b.slice()
?@MedetTleukabiluly因为我吃了一个非常好的三明治,它让我迷失了方向:)比较
var firstA=a有什么意义
a===firstA
?这总是一个好主意reference@MedetTleukabiluly显示未重新分配
a
。我知道这是多余的,但不会造成伤害。为什么不干脆
a=[…b]
?还有
Object。分配(a,b)
@medtleukiliuly将创建一个新数组。我想OP想将
a
更改到位,尽管我不确定。无法真正保证对象/数组将保留其地址