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
更改到位,尽管我不确定。无法真正保证对象/数组将保留其地址