类数组(伪数组)

168 阅读1分钟

什么是伪数组?

1. 具有 length 属性

2. 按索引方式存储数据

3. 不具有数组的 push 、pop 等方法

伪数组 无法直接调用数组方法或期望 length 属性有什么特殊行为,,不具有数组的的 push 、pop 等方法,尽管如此,仍可以对真正数据遍历方法来遍历它们。典型的是函数的 document.childnodes 之类,它们返回的 nodeList对象都属于伪数组。

伪数组如何转化为真实的数组?

1.使用 Array.from() ---ES6

<body>
    <ul>
        <li>未来可期1</li>
        <li>未来可期2</li>
        <li>未来可期3</li>
        <li>未来可期4</li>
        <li>未来可期5</li>
    </ul>
  <script>
      let eleArr=document.querySelectorAll('li')
      Array.from(eleArr).forEach(item=>{
          console.log(item,1111)
      })
  </script>
</body>

image.png

2.[].slice.call(eleArr) 或 Array.prototype.slice.call(eleArr)

<body>
    <ul>
        <li>不负韶华1</li>
        <li>不负韶华2</li>
        <li>不负韶华3</li>
        <li>不负韶华4</li>
        <li>不负韶华5</li>
    </ul>
    <script>
        let eleArr = document.querySelectorAll('li')
        Array.prototype.slice.call(eleArr).forEach(item => {
            console.log(item, 2222)
        })
    </script>
</body>

image.png