JS-陣列基礎知識3

Lin Yue發表於2020-11-27

今天主要看下pop(),unshift(),shift().push(),這幾個都屬於陣列的方法分別為,尾部刪除/頭部新增/頭部刪除/尾部新增
在這裡插入圖片描述
2.如何清空物件型陣列
對於清空陣列,大家就想到把陣列的length設定為0不就ok了,這個當然可以
例如:var arr=[1,2,3,4]; arr.length=0;
但是如果我們清空的是如下型別的陣列呢?
var data = [
{id:1001,icon:‘img/1.png’,name:‘餐飲0’,num:1,price:10},
{id:1002,icon:‘img/2.png’,name:‘餐飲1’,num:1,price:20},
{id:1003,icon:‘img/3.png’,name:‘餐飲2’,num:12,price:30},
{id:1004,icon:‘img/4.png’,name:‘餐飲3’,num:1,price:40},
{id:1005,icon:‘img/5.png’,name:‘餐飲4’,num:1,price:50},
{id:1006,icon:‘img/6.png’,name:‘餐飲5’,num:1,price:60},
{id:1007,icon:‘img/7.png’,name:‘餐飲6’,num:1,price:70},
{id:1008,icon:‘img/8.png’,name:‘餐飲7’,num:1,price:80},
{id:1009,icon:‘img/9.png’,name:‘餐飲8’,num:1,price:90},
{id:10010,icon:‘img/10.png’,name:‘餐飲9’,num:1,price:100},
{id:10011,icon:‘img/11.png’,name:‘餐飲10’,num:1,price:110},
]
當然,用data.length=0;陣列也可以清空;//data.length=0;//[]
但是陣列清空,物件處於遊離狀態,和陣列還有引用關係,沒有把引用地址賦值為null,會導致記憶體洩漏
於是,我們就採用了以下方法,發現陣列裡的陣列是沒有了,但是陣列的長度依然不變,沒有為0,因此,失敗了在這裡插入圖片描述
最後,採用以下方法,用shift()進行頭部刪除,這樣陣列為緊密型陣列,每進行一次刪除,陣列長度減一
在這裡插入圖片描述

不足之處,歡迎大佬指正!!!

相關文章