Array.from()方法就是将一个[类数组对象][或者可遍历对象]转换成一个[真正的数组]

那么什么是类数组对象呢?所谓类数组对象,最基本的要求就是具有length属性的对象。

       let arrayLike = {
0: 'll',
1: '60',
2: '男',
3: ['重庆', '四川'],
'length': 4
}
let arr = Array.from(arrayLike);
console.log(arr);

===================

如果没有length:4,那么就会转成一个空数组

 let arrayLike = {
0: 'll',
1: '60',
2: '男',
3: ['重庆', '四川'],
}
let arr = Array.from(arrayLike);
console.log(arr); 返回[]

对象的属性名必须为数值型或字符串型

 let arrayLike = {
bname: 'll',
asa: '60',
bb: '男',
cc: ['重庆', '四川'],
length: 4
}
let arr = Array.from(arrayLike);
console.log(arr); [undefined, undefined, undefined, undefined]
看下面这个例子
 let objarrLiske = {
2: "张三",
length: 3
}
let arr = Array.from(objarrLiske);
console.log(arr); //[undefined,undefined,'张三'];
// 上面显示类数组的长度是3,但是只有一个值。
// 则内容没有那么长,使用undefined来填充 ===============
let arr2 = {
2: "张三",
length: 3
}; let arr3 = Array.prototype.slice.call(arr2);
console.log(arr3); console.log(arr3);//[ 2:"张三"]
不同的浏览器显示的内容还不一样
我忘记call这个改变this指向的方法了

另外

由此可见,要将一个类数组对象转换为一个真正的数组,必须具备以下条件:

  1、该类数组对象必须具有length属性,用于指定数组的长度。如果没有length属性,那么转换后的数组是一个空数组。上面已经验证了  ok

  2、该类数组对象的属性名必须为数值型或字符串型

   3、 如果内容小于(《 )length;则使用underfined进行填充

如何使用其他的方法将一个对象转为数组 for in

for in 循环空对象或者数组 是不会报错的哈

     // 将对象变为数组
let arrayLike = {
bname: 'll',
asa: '60',
bb: '男'
}
let newarr = [];
for (let i in arrayLike) {
newarr.push(arrayLike[i])
}
console.log(newarr); ["ll", "60", "男"]

es6 Array.form将类数组或者对象转化为数组的更多相关文章

  1. JS中将对象转化为数组

    前言 其实这本来应该是一个很基础的问题了,但我之做一想记录一下是因为之前因为对象转数组的时候卡住了后来弄了出来,但最近再遇到这个问题时竟然又卡主了,所以,关于这个问题,如何把一个对象{'未完成':5, ...

  2. yii2得到的数据对象转化成数组

    yii2得到的数据对象转化成数组需要用到asArray().1.Customer::find(['id' => $id])->asArray()->one();2.$model = ...

  3. ES6复制拷贝数组,对象,json数组

    扩展运算符的应用spread打散数组[...] (1)复制数组 数组是复合的数据类型,直接复制的话,只是复制了指向底层数据结构的指针,而不是克隆一个全新的数组. const a1 = [1, 2]; ...

  4. 将JSON对象转化为数组对象

    package web.helper; import java.util.ArrayList; import net.sf.json.JSONArray; import web.model.Abstr ...

  5. 微信小程序之对象转化为数组

    对象转成数组方式一(数组里面是一个个number类型的元素) let dictObject= { , , , , }; // 对象转成数组方式一 var createArr = [] for (let ...

  6. Yii 将对象转化成数组

    将从数据库查找的对象,转换成数组,并且以设定属性键名称,用到ArrayHelper::toArray $posts = Post::find()->limit(10)->all(); $d ...

  7. 将对象转化为数组,并且适用select下拉

    当你做element-ui的select下拉的时候数据是从后台请求,但是怎么才能将obj转成数组呢.并且后台返回的key和value中的key是要传的参数 var obj = { name: 'gab ...

  8. php 将对象转化为数组

    $list = json_decode(json_encode($list), true);  

  9. Array.from()类数组转化为数组的用法

    类数组对象转化为数组 let arrayLike = { '0': 'a', '1': 'b', '2': 'c', length: 3 }; let arr = Array.from(arrayLi ...

  10. js常用数据类型(Number,String,undefined,boolean) 引用类型( function,object,null ),其他数据类型( 数组Array,时间Date,正则RegExp ),数组与对象的使用

    js常用数据类型 数字类型 | 字符串类型 | 未定义类型 | 布尔类型 typeof()函数查看变量类型 数字类型  Number var a1 = 10; var a2 = 3.66; conso ...

随机推荐

  1. appuploader不是开发者账号

    Appuploader是一款可以帮助开发者上传iOS应用到Apple App Store的工具.很多开发者都知道,在上传应用到App Store之前,需要创建开发者账号并获得苹果官方的认证才能进行上传 ...

  2. Typora 一行显示多图

    图片下显示说明 ![](https://pic.cnblogs.com/avatar/80824/20200328151729.png) <center style="font-siz ...

  3. SpringBoot 接口输出文件流 & Vue 下载文件流,获取 Header 中的文件名

    SpringBoot 接口输出文件流 & Vue 下载文件流,获取 Header 中的文件名 @GetMapping("/download") public Respons ...

  4. MySQL 创建存储过程注意项

    MySQL server version for the  right syntax to use near 'IF' MySQL server version for the right synta ...

  5. 【Java 进阶】Java8 新特性的理解与应用

    [进阶]Java8新特性的理解与应用 前言 Java 8是Java的一个重大版本,是目前企业中使用最广泛的一个版本. 它支持函数式编程,新的Stream API .新的日期 API等一系列新特性. 掌 ...

  6. AudioLDM 2,加速!

    AudioLDM 2 由刘濠赫等人在 AudioLDM 2: Learning Holistic Audio Generation with Self-supervised Pretraining 一 ...

  7. web应用模式 api接口 接口测试工具postman restful规范

    目录 web应用模式 前后端混合开发 流程说明(重要) 前后端分离开发 流程说明(重要) api接口 接口测试工具postman 基本介绍 编码格式 restful规范(重要) 简介 主要内容 练习 ...

  8. 如何向已有的项目中添加C/C++代码?

    第一步: 我们需要在src/main下面建立一个cpp目录,然后在其中写一个CMakeLists.txt文件和一个cpp文件,直接给出代码: #CMakeLists.txt文件# For more i ...

  9. POJ:Arbitrage (搜索,汇率换算是否赚?)

    POJ 2240 http://poj.org/problem?id=2240 题意:判断是否存在使得汇率增多的环 [任意一个点的汇率增多都可以] Floyd 简单变形 \(w[i][j] = max ...

  10. 第九届蓝桥杯(2018)C/C++大学A组省赛题解

    第一题:分数 1/1 + 1/2 + 1/4 + 1/8 + 1/16 + - 每项是前一项的一半,如果一共有20项, 求这个和是多少,结果用分数表示出来. 类似:3/2 当然,这只是加了前2项而已. ...