之前做東西的時(shí)候遇到需要將一個(gè)數(shù)組賦值給另一個(gè)新數(shù)組,并且操作新數(shù)組的時(shí)候不會(huì)影響原來(lái)的數(shù)組,可以使用以下的方法來(lái)實(shí)現(xiàn):
var b = [].concat(a);例如下面給出一個(gè)例子(錯(cuò)誤的):
var aArray = [0, 1, 2, 3, 4, 5];var bArray = aArray;bArray.splice(1, 1);console.log(aArray);console.log(bArray);得到的結(jié)果是:
[0, 2, 3, 4, 5][0, 2, 3, 4, 5]可以看到修改不bArray的時(shí)候也會(huì)將aArray的值修改;至于原因是因?yàn)?a href="http://www.survivalescaperooms.com/article.asp?typeid=160">javascript中的array數(shù)組類型是引用類型,也就是bArray和aArray的元數(shù)據(jù)存儲(chǔ)位置是一樣的,bArray和aArray都是對(duì)原數(shù)據(jù)的引用,所以bArray的修改會(huì)導(dǎo)致aArray的修改。
下面是改過(guò)之后的例子:
var aArray = [0, 1, 2, 3, 4, 5];var bArray = [].concat(aArray);bArray.splice(1, 1);console.log(aArray);console.log(bArray);得到如下結(jié)果:
[0, 1, 2, 3, 4, 5][0, 2, 3, 4, 5]完美解決,并且符合自己的需要。
新聞熱點(diǎn)
疑難解答
圖片精選