在js中,数组是特殊的对象,凡是对象有的性质,数组都有,数组表示有序数据的集合,而对象表示无序数据的集合。

那伪数组是什么呢,当然它也是对象,伪数组一般具有以下特点:

  • 按索引方式存储数据;
  • 具有length属性;
  • 没有数组的push、shift、pop等方法;

function的arguments对象,还有getElementsByTagName、ele.childNodes等返回的NodeList对象,或者自定义的某些对象,这些都可以是伪数组。

我们可以通过以下几种方式将伪数组转换为标准数组:

  1. 使用Array.prototype.slice.call();

    1. Array.prototype.slice.call({
    2. 0:"likeke",
    3. 1:12,
    4. 2:true,
    5. length:3
    6. });
    7. //["likeke", 12, true]
  2. 使用[].slice.call(),了解js原型链的都知道,实际上这种方法和第一中方法是一样的,但上面第一种方式相对效率更高。
    1. [].slice.call({
    2. 0:"likeke",
    3. 1:12,
    4. 2:true,
    5. length:3
    6. });
    7. //["likeke", 12, true]
  3. 使用ES6中Array.from方法;
    1. Array.from({
    2. 0:"lk",
    3. 1:12,
    4. 2:2013,
    5. 3:"长安大学",
    6. length:4
    7. });
    8. //["lk", 12, 2013, "长安大学"]

js将伪数组转换为标准数组的多种方法的更多相关文章

  1. C# 数组转换为DataTable 的三个方法

    C# 数组转换为DataTable 的三个方法   using System; using System.Data; namespace ArrayToDataTable { class ArrayT ...

  2. numpy基础教程--将二维数组转换为一维数组

    1.导入相应的包,本系列教程所有的np指的都是numpy这个包 1 # coding = utf-8 2 import numpy as np 3 import random 2.将二维数组转换为一维 ...

  3. javascript 伪数组与标准数组

    伪数组 1. 是一个对象 2. 必须有length 属性,length 值是number 类型 3. 如果这个对象的length 不为0,那么必须要有按照下标存储的数据 标准数组 判断数据是否是标准数 ...

  4. [js] - js中类(伪)数组装正规数组

    今天的js中使用了自定义的原型方法去重后,再调用这个获取的去重的数组传入另一个含有for循环的方法时, console.log出错: dimensions:createTime,华联石化,海油石化,青 ...

  5. TP5 JSON对象数组转换为普通数组

    来源于:https://blog.csdn.net/lingchen__/article/details/67671047 使用TP5框架做项目时,对于数据的查询返回的都是对象,虽然也可以当做普通的数 ...

  6. C# 字符串数组转换为整形数组

    /// <summary> /// 字符串数组转换整形数组 /// </summary> /// <param name="Content">字 ...

  7. JS中将一个值转换为字符串的3种方法

    1.value.toString() 2."" + value 3.String(value) 第一种方法存在的问题是,它不能把null和undefined转换为字符串.还有第二种 ...

  8. javascript 将多维数组转换为一维数组

    /** * 2013年9月去面试的时候,有面试过这样子一道题目: * 题目是这样子的:将一个多维数组转换成一维数组并返回该数组,类似 * [1,2,3,[4,5,6,[7,8]],9]转换后为:[1, ...

  9. JAVA将Object数组转换为String数组

    java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.String; java将Object[ ...

随机推荐

  1. 客户端相关知识学习(一)之混合开发,为什么要在App中使用H5页面以及应用场景、注意事项

    混合开发 随着移动互联网的高速发展,常规的开发速度已经渐渐不能满足市场需求.原生H5混合开发应运而生,目前,市场上许多主流应用都有用到混合开发,例如支付宝.美团等.下面,结合我本人的开发经验,简单谈一 ...

  2. mybatis和spring的整合

    Mybatis与Spring的集成 1.配置Spring环境 创建maven工程 pom.xml导入依赖 <project xmlns="http://maven.apache.org ...

  3. 【From StackOverFlow】--set-upstream 和--set-upstream-to=以及--track的区别

    本文引自StackOverFlow http://stackoverflow.com/questions/26090689/git-set-upstream-to-vr-track

  4. 颜色框架Hue使用方法

    Hue地址 如果有疑问或者想探讨iOS开发相关的技术,十分欢迎. 1. cocoapods安装Hue pod "Hue" 2. 导入框架 import Hue 3. 将十六进制数字 ...

  5. 1.什么是bat文件

    bat文件是dos下的批处理文件.批处理文件是无格式的文本文件,它包含一条或多条命令.它的文件扩展名为 .bat 或 .cmd. 在命令提示下输入批处理文件的名称,或者双击该批处理文件,系统就会调用c ...

  6. Spark 2.43读取.json文件入库到MySQL 8

    如果没有安装包,可以用我的这个 百度网盘链接点击进入 提取码: eku1 解压之后 准备开始配置环境变量 如果运行时候报错参考 (java.io.IOException: Could not loca ...

  7. php获取当前网页地址

    判断是否为https /** * 判断是否为https * @return bool 是https返回true;否则返回false */ function is_https() { if ( !emp ...

  8. 牛客练习赛47 E DongDong数颜色 (树上启发式合并)

    链接:https://ac.nowcoder.com/acm/contest/904/E 来源:牛客网 DongDong数颜色 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 5242 ...

  9. 屏蔽iOS升级方法

    1.iPhone或者iPad使用safari浏览器打开http://d.updater.i4.cn/i4tools7/temp/tvos.mobileconfig 2.点击[允许] 3.进入[通用]- ...

  10. SpringBoot 出现内置的Tomcat没有启动的情况

    Tomcat未启动,也未报错 pom.xml文件中增加 <dependency> <groupId>org.springframework.cloud</groupId& ...