JavaScript创建使用备份阵列
只要看看代码,你就会明白我的意思:JavaScript创建使用备份阵列,javascript,arrays,Javascript,Arrays,只要看看代码,你就会明白我的意思: var aBackup = [3, 4]; // backup array var a = aBackup; // array to work with is set to backup array a[0]--; // working with array.. a = aBackup; // array o work with will be rested console.log(a); // returns [2, 4] but should re
var aBackup = [3, 4]; // backup array
var a = aBackup; // array to work with is set to backup array
a[0]--; // working with array..
a = aBackup; // array o work with will be rested
console.log(a); // returns [2, 4] but should return [3, 4]
console.log(aBackup); // returns [2, 4] too but should return [3, 4] too
javascript对数组不使用指针吗?应该
var a=回退代码>复制吗?否则,结果对我来说是正常的…javascript不是对数组使用指针吗?应该var a=回退代码>复制吗?否则,结果对我来说似乎是正常的…数组是对象的引用类型,因此对它所做的更改将更改它指向的基础值,a和aBackup将指向相同的值,对a所做的更改也将更改aBackup。数组是对象的引用类型,因此,对它所做的更改将更改它所指向的基础值,a和aBackup将指向相同的值,对a所做的更改也将更改aBackup。您需要制作数组的真实副本,而不仅仅是使用引用:
var aBackup = [3, 4]; // backup array
var a = aBackup.slice(0); // "clones" the current state of aBackup into a
a[0]--; // working with array..
a = aBackup.slice(0); // "clones" the current state of aBackup into a
console.log(a); // returns [3, 4]
console.log(aBackup); // returns [3, 4]
有关切片
-方法的文档,请参阅。您需要制作阵列的真实副本,而不仅仅是使用引用:
var aBackup = [3, 4]; // backup array
var a = aBackup.slice(0); // "clones" the current state of aBackup into a
a[0]--; // working with array..
a = aBackup.slice(0); // "clones" the current state of aBackup into a
console.log(a); // returns [3, 4]
console.log(aBackup); // returns [3, 4]
有关切片
-method的文档,请参阅,这是因为执行此操作时,您不是在复制阵列,而是在引用原始阵列
var a IS aBackup; // if you will
当您需要克隆备份阵列时。这是因为当您这样做时,您不是在复制阵列,而是在引用原始阵列
var a IS aBackup; // if you will
您需要做的是克隆备份阵列。可能的重复--尽管标题/问题中有术语jQuery,但解决方案与jQuery无关。@FelixKling抱歉,我看到了此重复项。每个人都应该投票决定是否关闭。可能的重复项--尽管标题/问题中有jQuery一词,但解决方案与jQuery无关。@FelixKling抱歉,我看到了重复项。每个人都应该投票结束。