將偽數(shù)組轉(zhuǎn)為真正的數(shù)組

偽數(shù)組轉(zhuǎn)為真數(shù)組

對(duì)DOM元素進(jìn)行map、forEach操作時(shí)候需要進(jìn)行遍歷,偽數(shù)組遍歷會(huì)報(bào)錯(cuò):'elem.map is not a function',為了避免這個(gè)問(wèn)題,需要進(jìn)行轉(zhuǎn)換。

(1) ES5 轉(zhuǎn)為真數(shù)組

Array.prototype.slice.call(元素對(duì)象)

let elem1 = Array.prototype.slice.call(elem)
(2) ES6 轉(zhuǎn)為真數(shù)組

Array.from(元素對(duì)象)

let elem2 = Array.from(elem)
(3) 例子
<ul>
    <li class="a" ></li>
    <li class="a" ></li>
    <li class="a" ></li>
    <li class="a" ></li>
    <li class="a" ></li>
</ul>

<script>

/* 獲取li元素*/
let elem = document.getElementsByClassName('a')

/* 這樣寫(xiě)是錯(cuò)誤的,因?yàn)槭莻螖?shù)組*/
elem.map((item,index,elem) => {
    console.log(item +'---'+index + '----'+elem) 
    /*elem.map is not a function*/
})

// (1)es6 轉(zhuǎn)為真數(shù)組
let elem1 = Array.from(elem)
// (2)es5 轉(zhuǎn)為真數(shù)組
let elem2 = Array.prototype.slice.call(elem)

console.log(elem)
console.log(typeof elem)
console.log(elem1)
console.log(elem2)

elem1.map((item,index,elem1) => {
    console.log(item +'---'+index + '----'+elem1)
})
elem2.map((item,index,elem2) => {
    console.log(item +'---'+index + '----'+elem2)
})

</script>




最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Javascript有很多數(shù)組的方法,有的人有W3C的API,還可以去MDN上去找,但是我覺(jué)得API上說(shuō)的不全,M...
    頑皮的雪狐七七閱讀 4,492評(píng)論 0 6
  • 第2章 基本語(yǔ)法 2.1 概述 基本句法和變量 語(yǔ)句 JavaScript程序的執(zhí)行單位為行(line),也就是一...
    悟名先生閱讀 4,546評(píng)論 0 13
  • 從我真正決定放手離開(kāi)你的那天起,我就沒(méi)打算再回頭了。 那句話(huà)說(shuō)的真對(duì),你真正決定放手的那一次,關(guān)門(mén)聲最小。 對(duì),很...
    喝不醉的月光閱讀 730評(píng)論 0 2
  • 新陳代謝 機(jī)體與外界環(huán)境之間的物質(zhì)和能量交換以及生物體內(nèi)物質(zhì)和能量的自我更新過(guò)程。 新陳代謝的快慢與好壞 防風(fēng)與加...
    二石兄閱讀 848評(píng)論 0 1

友情鏈接更多精彩內(nèi)容