真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

JavaScript中數(shù)組怎么克隆

這篇文章主要介紹JavaScript中數(shù)組怎么克隆,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

創(chuàng)新互聯(lián)公司憑借在網(wǎng)站建設(shè)、網(wǎng)站推廣領(lǐng)域領(lǐng)先的技術(shù)能力和多年的行業(yè)經(jīng)驗(yàn),為客戶提供超值的營銷型網(wǎng)站建設(shè)服務(wù),我們始終認(rèn)為:好的營銷型網(wǎng)站就是好的業(yè)務(wù)員。我們已成功為企業(yè)單位、個(gè)人等客戶提供了網(wǎng)站建設(shè)、成都網(wǎng)站制作服務(wù),以良好的商業(yè)信譽(yù),完善的服務(wù)及深厚的技術(shù)力量處于同行領(lǐng)先地位。

js主要分基本數(shù)據(jù)類型引用數(shù)據(jù)類型兩大類

基本數(shù)據(jù)類型包括:number,string,undefine,null,boolean,Symbol(es6新增)
引用數(shù)據(jù)類型:Object,Array,Function,Data等
注意:基本數(shù)據(jù)類型放在**??臻g內(nèi)**,并且是按值存放,可以直接讀取和操作。
引用數(shù)據(jù)類型存放在**堆空間內(nèi)**(門),變量的值其實(shí)是指向堆空間的地址(鑰匙),因此如果克隆這個(gè)變量,相當(dāng)于復(fù)制鑰匙。

let arr = [1,2,3,4,5]
let arr1 = arr  // 這一步相當(dāng)于把a(bǔ)rr??臻g的地址賦給了arr1,其實(shí)arr和arr1操作的是同一個(gè)堆空間的對(duì)象
arr1.push(6) // arr1 = [1,2,3,4,5,6]
console.log(arr) //[1,2,3,4,5,6]

因此對(duì)于引用類型的拷貝,需要拷貝堆空間的對(duì)象

數(shù)組淺拷貝
1.運(yùn)用數(shù)組slice與concat方法返回一個(gè)新數(shù)組的特性

let arr = [1,2,3,4,5]
let arr1 = arr.slice() //[1,2,3,4,5]
let arr2 = arr.concat() //[1,2,3,4,5]

2.簡單粗暴的方法-遍歷

let arr = [1,2,3,4,5]
let arr2 = []
arr.forEach(item=>{
    arr2.push(item)
    }
)
console.log(arr2)

3.es6新增方法-拓展運(yùn)算符

let arr = [1,2,3,4,5]
let arr1 = [...arr] //[1,2,3,4,5]

4.es6新增方法-Object.assign
let arr = [1,2,3,4,5]
let arr1 = []
Object.assign(arr1,arr)
console.log(arr1) //[1,2,3.4,5]

如果數(shù)組里嵌套數(shù)組和對(duì)象,淺拷貝只會(huì)拷貝該數(shù)組或者對(duì)象存放在??臻g的地址,因此無論在新舊數(shù)組中改變此地址指向的對(duì)象,兩個(gè)數(shù)組都會(huì)發(fā)生改變。 因此我們需要深拷貝來拷貝此類數(shù)組。

數(shù)組深拷貝
1.普通遍歷,遍歷到引用類型時(shí)候進(jìn)行引用類型的拷貝

let arr = [1,2,3,4,5,{name:'bob'},['a','b']]
      function clone (arr) {
        let arr1 = []
        arr.forEach(item=>{
        //如果不是object,將該值插入到新數(shù)組
          if(typeof(item) !== 'object') {
            arr1.push(item)
          } else {
          //根據(jù)遍歷的對(duì)象新建一個(gè)相同類型的空對(duì)象
            let obj = item instanceof Array ? [] : {}
            for(var key in item){
              if(item.hasOwnProperty(key)){
                obj[key] = item[key]
              }
            }
            arr1.push(obj)
          }
        })
        return arr1
      }
      let arr1 = clone(arr)
      arr1[5].name = 'js'
      console.log(arr,'arr',arr1,'arr1')

2.簡單粗暴(能拷貝數(shù)組和對(duì)象,但不能拷貝函數(shù))

let arr = [1,2,3,4,5,{name:'bob'},['a','b']]
let arr1 = JSON.parse(JSON.stringify(arr))

以上是“JavaScript中數(shù)組怎么克隆”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


文章標(biāo)題:JavaScript中數(shù)組怎么克隆
標(biāo)題鏈接:http://weahome.cn/article/pdsjsh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部