??JS數(shù)組賦值踩坑記錄??
在前端開發(fā)中,JS數(shù)組操作是家常便飯,但有時(shí)候看似簡(jiǎn)單的操作卻暗藏玄機(jī)!?? 今天就來聊聊我在數(shù)組賦值時(shí)遇到的小坑,希望能幫到大家。
首先,咱們得知道,直接賦值可能會(huì)導(dǎo)致意想不到的結(jié)果。比如:
```javascript
let arr1 = [1, 2, 3];
let arr2 = arr1;
arr2[0] = 99;
console.log(arr1); // 輸出: [99, 2, 3]
```
咦?為什么arr1也變了?原因在于`arr2`只是`arr1`的引用,并非新數(shù)組!?? 這就是淺拷貝的鍋。
那么,如何正確賦值呢?推薦使用`slice()`或`concat()`方法創(chuàng)建新數(shù)組:
```javascript
let arr3 = arr1.slice();
arr3[0] = 88;
console.log(arr1); // 輸出: [1, 2, 3]
```
最后提醒一下,如果是多維數(shù)組,記得遞歸深拷貝哦!?? 用`JSON.parse(JSON.stringify())`也能搞定~
希望這篇小總結(jié)能幫你避開這些常見雷區(qū)!??
免責(zé)聲明:本文為轉(zhuǎn)載,非本網(wǎng)原創(chuàng)內(nèi)容,不代表本網(wǎng)觀點(diǎn)。其原創(chuàng)性以及文中陳述文字和內(nèi)容未經(jīng)本站證實(shí),對(duì)本文以及其中全部或者部分內(nèi)容、文字的真實(shí)性、完整性、及時(shí)性本站不作任何保證或承諾,請(qǐng)讀者僅作參考,并請(qǐng)自行核實(shí)相關(guān)內(nèi)容。