伪数组怎么转为真正的数组呢~

在用js获取元素对象的时候,很多时候需要进行将伪数组转为真正的数组的,那么如何用呢~~~

废话少说,直接上代码~

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport">
    <title>test overflow</title>
    <style type="text/css">
    /* 滚动的三要素:
            1:父盒子设置width为100%,横向滚动overflow-x: scroll,不换行white-space: nowrap;
            2.子元素设置为行内块级元素display: inline-block;
     */
        * {
            margin: 0;
            padding: 0;
        }
        ul {
            width: 100%;
            padding: 20px;
            border: 1px solid red;
            overflow-x: auto;
            white-space: nowrap;
        }
        li {
            display: inline-block;
            border: 1px solid yellow;
            padding: 10px 30px;
        }
    </style>
</head>
<body>
        <ul>
            <li class="flex" >美妆</li>
            <li class="flex" >服饰</li>
            <li class="flex" >衣服</li>
            <li class="flex" >化妆品</li>
            <li class="flex" >童装</li>
        </ul>
</body>
<script type="text/javascript">
    /*
        伪数组转为真数组
        (1)Array.from(元素对象)
        (2)Array.prototype.slice.call(元素对象)
    */

    let
            // 获取li元素
            oLi = document.getElementsByClassName(‘flex‘)
            // (1)es6 转为真数组
            aLi1 = Array.from(oLi)
            // (2)es5 转为真数组
            aLi2 = Array.prototype.slice.call(oLi)

            console.log(oLi)
            console.log(typeof oLi)
            console.log(aLi1)
            console.log(aLi2)

            aLi1.map((item,index,oli) => {
                console.log(item +‘---------------‘+index + ‘------------‘+oli)
            })

            // 报错
            oLi.map((item,index,oli) => {
                console.log(item +‘---------------‘+index + ‘------------‘+oli)
            })

</script>
</html>
时间: 2024-10-29 10:19:28

伪数组怎么转为真正的数组呢~的相关文章

观V8源码中的array.js,解析 Array.prototype.slice为什么能将类数组对象转为真正的数组?

在官方的解释中,如[mdn] The slice() method returns a shallow copy of a portion of an array into a new array object. 简单的说就是根据参数,返回数组的一部分的copy.所以了解其内部实现才能确定它是如何工作的.所以查看V8源码中的Array.js     可以看到如下的代码: 一.方法  ArraySlice,源码地址,直接添加到Array.prototype上的"入口",内部经过参数.类型

将伪数组转为真正的数组

将伪数组转为真正的数组 2018.08.14 21:06:53字数 90阅读 2321 伪数组转为真数组 对DOM元素进行map.forEach操作时候需要进行遍历,伪数组遍历会报错:'elem.map is not a function',为了避免这个问题,需要进行转换. (1) ES5 转为真数组 Array.prototype.slice.call(元素对象) let elem1 = Array.prototype.slice.call(elem) (2) ES6 转为真数组 Array.

XML在java或.NET中转为Json的数组或对象数据时的处理

XML在java和.NET中转为Json数据时会出现这样一个问题,当节点中只有一个节点数据时是转换为对象,有多个节点则是转为数组,为了应对这个问题我们需要在解析的时候进行如下的处理,不然就会报异常: 数据1:数组格式 "Field": [                    {                        "@name": "APPROVE",                        "@title"

如何将伪数组转换成真正的数组

1.常见的伪数组有哪些? arguments.通过document.getElements..获取到的内容 2.伪数组有什么特点? 具有length属性,也是一个一个的元素组成的,但是构造器不是Array,不能使用数组的方法 3.转换为真正的数组的方法: 通过遍历将伪数组里元素放入到一个新的数组里 通过call改变数组slice方法里的this指向 因为我想要让伪数组也能使用数组的方法,为什么伪数组就不能使用数组方法,为什么数组就能使用push方法 一个数组都是由她的构造器实例化出来的,var

JavaScript Array 属性 构造器 将数组值转为大写

实例 一个新的数组的方法,将数组值转为大写: Array.prototype.myUcase=function() { for (i=0;i<this.length;i++){ this[i]=this[i].toUpperCase(); } } 创建一个数组,然后调用 myUcase 方法: var fruits=["Banana","Orange","Apple","Mango"]; fruits.myUcase()

php中的常用数组函数(七) 数组合并 array_merge()和array_merge_recursive()

1 $arr1 = array(1, 2, 3, 4, 'color'=>'red'); 2 $arr2 = array('a', 'b', 'c', 'color'=>'blue'); 3 print_r(array_merge($arr1, $arr2));//同名索引的值会覆盖 4 print_r(array_merge_recursive($arr1, $arr2));//相同的键名 不会覆盖,如果是单个元素会在转为一个一维数组 两个函数作用都是合并数组.参数可以是1到n个数组.(呃,

浅谈PHP中的数组和JS中的数组

最近在做前后端对接的时候,遇到一个问题,前端要求返回的数据格式是左边的,但是我通过json_encode返回到的数据格式是右边的   注意:数据格式从"[]"(数组)变成了"{}"(对象) google了下,发现:javascript不支持关联数组 , PHP中索引数组转换成json是数组([]),php关联数组转换成json是对象( {} ) ,所以如果是关联数组的话,需要对数组做一些处理才行 PHP中的数组:索引数组和关联数组 PHP支持两种数组,一种是只保存&

逆向知识十三讲,汇编中数组的表现形式,以及还原数组

逆向知识十三讲,汇编中数组的表现形式,以及还原数组 讲解数组之前,要了解数组的特性 1.数据具有连续性 2.数据类型相同 比如: int Ary[3] = {0,1,2}; 我们可以看出,上面定义的数组,数据是连续的,其中每个数据类型大小都是int类型(类型也是一样的) 汇编中识别数组: 1.地址连续 2.带有比例因子寻址   (lea  reg32,[xxx  + 4 *xxxx]) 一丶一维数组在汇编中的表现形式 首先说下数组寻址公式,便于下面讲解 公式: 数组首地址 + sizeof(ty

数组的复制及ES6数组的扩展

一.数组的复制 // alert([1,2,3]==[1,2,3]); let cc = [0,1,2]; let dd = cc; alert(dd==cc);//此时改变dd会影响cc ES5 只能用变通方法来复制数组. const a1 = [1, 2]; const a2 = a1.concat(); a2[0] = 2; a1 // [1, 2] //使用ES6语法会防止这种现象出现 const a1 = [1, 2]; // 写法一 const a2 = [...a1]; // 写法