2021-3-17 類數(shù)組和數(shù)組的區(qū)別鸠项,dom的類數(shù)組如何轉(zhuǎn)換成數(shù)組

1)定義

數(shù)組是一個特殊對象,與常規(guī)對象的區(qū)別:
1.當由新元素添加到列表中時骚灸,自動更新length
屬性
2設置length屬性期虾,可以截斷數(shù)組
3.從Array.protoype中繼承了方法
4.屬性為'Array'
類數(shù)組是一個擁有l(wèi)ength屬性公你,并且他屬性為非負整
數(shù)的普通對象踊淳,類數(shù)組不能直接調(diào)用數(shù)組方法。

2)區(qū)別

本質(zhì):類數(shù)組是簡單對象陕靠,它的原型關系與數(shù)組不同迂尝。

// 原型關系和原始值轉(zhuǎn)換
let arrayLike = {
    length: 10,
};
console.log(arrayLike instanceof Array); // false
console.log(arrayLike.__proto__.constructor === Array); // false
console.log(arrayLike.toString()); // [object Object]
console.log(arrayLike.valueOf()); // {length: 10}

let array = [];
console.log(array instanceof Array); // true
console.log(array.__proto__.constructor === Array); // true
console.log(array.toString()); // ''
console.log(array.valueOf()); // []
3)類數(shù)組轉(zhuǎn)換為數(shù)組。轉(zhuǎn)換方法

1.使用Array.from()
2.使用Array.prototype.slice.call()
3.使用Array.prototype.forEach()進行屬性遍歷并組成新的數(shù)組
剪芥。轉(zhuǎn)換須知
垄开。轉(zhuǎn)換后的數(shù)組長度由length屬性決定。索引不連續(xù)時轉(zhuǎn)換結(jié)果是連續(xù)的税肪,會自動補位溉躲。
榜田。代碼示例

let al1 = {
    length: 4,
    0: 0,
    1: 1,
    3: 3,
    4: 4,
    5: 5,
};
console.log(Array.from(al1)) // [0, 1, undefined, 3]

。②僅考慮0或正整數(shù)的索引

// 代碼示例
let al2 = {
    length: 4,
    '-1': -1,
    '0': 0,
    a: 'a',
    1: 1
};
console.log(Array.from(al2)); // [0, 1, undefined, undefined]

③使用slice轉(zhuǎn)換產(chǎn)生稀疏數(shù)組

// 代碼示例
let al2 = {
    length: 4,
    '-1': -1,
    '0': 0,
    a: 'a',
    1: 1
};
console.log(Array.prototype.slice.call(al2)); //[0, 1, empty × 2]

4)使用數(shù)組方法操作類數(shù)組注意地方

  let arrayLike2 = {
    2: 3,
    3: 4,
    length: 2,
    push: Array.prototype.push
  }

  // push 操作的是索引值為 length 的位置, 所以下面的2對應1,  之后length變3, push(2) 之后 3對應 2
  arrayLike2.push(1);
  console.log(arrayLike2); // {2: 1, 3: 4, length: 3, push: ?}
  arrayLike2.push(2);
  console.log(arrayLike2); // {2: 1, 3: 2, length: 4, push: ?}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末锻梳,一起剝皮案震驚了整個濱河市箭券,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌唱蒸,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,039評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件灸叼,死亡現(xiàn)場離奇詭異神汹,居然都是意外死亡,警方通過查閱死者的電腦和手機古今,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評論 3 395
  • 文/潘曉璐 我一進店門屁魏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人捉腥,你說我怎么就攤上這事氓拼⊥拢” “怎么了汽畴?”我有些...
    開封第一講書人閱讀 165,417評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長淘这。 經(jīng)常有香客問我拟逮,道長撬统,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,868評論 1 295
  • 正文 為了忘掉前任敦迄,我火速辦了婚禮恋追,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘罚屋。我一直安慰自己苦囱,他們只是感情好,可當我...
    茶點故事閱讀 67,892評論 6 392
  • 文/花漫 我一把揭開白布脾猛。 她就那樣靜靜地躺著撕彤,像睡著了一般。 火紅的嫁衣襯著肌膚如雪猛拴。 梳的紋絲不亂的頭發(fā)上喉刘,一...
    開封第一講書人閱讀 51,692評論 1 305
  • 那天,我揣著相機與錄音漆弄,去河邊找鬼睦裳。 笑死,一個胖子當著我的面吹牛撼唾,可吹牛的內(nèi)容都是我干的廉邑。 我是一名探鬼主播,決...
    沈念sama閱讀 40,416評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼蛛蒙!你這毒婦竟也來了糙箍?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,326評論 0 276
  • 序言:老撾萬榮一對情侶失蹤牵祟,失蹤者是張志新(化名)和其女友劉穎深夯,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體诺苹,經(jīng)...
    沈念sama閱讀 45,782評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡咕晋,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,957評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了收奔。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片掌呜。...
    茶點故事閱讀 40,102評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖坪哄,靈堂內(nèi)的尸體忽然破棺而出质蕉,到底是詐尸還是另有隱情,我是刑警寧澤翩肌,帶...
    沈念sama閱讀 35,790評論 5 346
  • 正文 年R本政府宣布模暗,位于F島的核電站,受9級特大地震影響念祭,放射性物質(zhì)發(fā)生泄漏汰蓉。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,442評論 3 331
  • 文/蒙蒙 一棒卷、第九天 我趴在偏房一處隱蔽的房頂上張望顾孽。 院中可真熱鬧,春花似錦比规、人聲如沸若厚。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽测秸。三九已至,卻和暖如春灾常,著一層夾襖步出監(jiān)牢的瞬間霎冯,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評論 1 272
  • 我被黑心中介騙來泰國打工钞瀑, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留沈撞,地道東北人。 一個月前我還...
    沈念sama閱讀 48,332評論 3 373
  • 正文 我出身青樓雕什,卻偏偏與公主長得像缠俺,于是被迫代替她去往敵國和親显晶。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,044評論 2 355

推薦閱讀更多精彩內(nèi)容