鍍金池/ 問答/HTML/ 怎么把數(shù)組倒置,又不影響原來數(shù)組,reverse不行

怎么把數(shù)組倒置,又不影響原來數(shù)組,reverse不行

怎么把數(shù)組倒置,又不影響原來數(shù)組,reverse不行,會把原數(shù)組也給反過來。
求指教下~

var arr = ["1","2","3","4"];
var bbb = arr.reverse()
console.log(arr); //["4", "3", "2", "1"]
console.log(bbb); //["4", "3", "2", "1"]
回答
編輯回答
孤慣

你直接改的話bbb和arr指向是同一個數(shù)組對象。reverse改變的是數(shù)組對象,a指向它,所以改變了,要改變就要讓其指向不同

     var arr = ["1","2","3","4"];
var bbb = [...arr].reverse() 
//var bbb = [].concat(arr).reverse()  
//var bbb = Object.assign([],arr).reverse()
//var bbb = arr.slice().reverse()
console.log(arr); 
console.log(bbb); 
2017年7月26日 06:24
編輯回答
擱淺

數(shù)組是引用類型,需要深度拷貝 樓上答案全部正確 ES6語法很方便 .../assign 好用

2017年3月17日 07:40
編輯回答
拮據(jù)

那你copy一份不就行了。
slice、concat、JSON轉(zhuǎn)都行。

2017年1月16日 01:56
編輯回答
孤酒
var arr = ["1","2","3","4"];
var bbb = arr.slice();
bbb.reverse();
console.log(arr);
console.log(bbb);
2017年5月15日 19:31