Array.from方法用于将两类对象转为真正的数组:类似数组的对象( array-like object )和可遍历( iterable )的对象(包括 ES6 新增的数据结构 Set 和Map )。

let arrayLike = {
'0': 'a',
'1': 'b',
'2': 'c',
length: 3
// ES5 的写法
var arr1 = [].slice.call(arrayLike); // ['a', 'b', 'c']
// ES6 的写法
let arr2 = Array.from(arrayLike); // ['a', 'b', 'c']
// NodeList 对象
let ps = document.querySelectorAll('p');
Array.from(ps).forEach(function (p) {
console.log(p);
// arguments 对象
function foo() {
var args = Array.from(arguments);
// ...
Array.from('hello')
// ['h', 'e', 'l', 'l', 'o']
let namesSet = new Set(['a', 'b'])
Array.from(namesSet) // ['a', 'b']
Array.from({ length: 3 });
// [ undefined, undefined, undefined ]

Array.from还可以接受第二个参数,作用类似于数组的map方法,用来对每个元素进行处理,将处理后的值放入返回的数组。

Array.from(arrayLike, x => x * x);
//  等同于
Array.from(arrayLike).map(x => x * x);
Array.from([1, 2, 3], (x) => x * x)
// [1, 4, 9]

值得提醒的是,扩展运算符(...)也可以将某些数据结构转为数组。

// arguments 对象
function foo() {
var args = [...arguments];
// NodeList 对象
[...document.querySelectorAll('div')]
对象 转化为 数组 的三种 方法 Object .keys(obj) -----根据 对象 的键形成的 数组 (常用) Object .entries(obj) ---- 根据 对象 的键值对形成的 数组 Object .values(obj)----根据 对象 的值形成的 数组 注意点: Object 开头字母要大写 Object .keys(obj) (4) ["a", "b", "c", "d"]0: "a"1: "b"2: "c"3: "d"length: 4__proto__: Array (0) Object .values(obj) 是 JavaScript 中的一个静态 方法 ,用于从一个类似 数组 或可迭代 对象 (如SetMap的迭代器,或者字符串、类 数组 对象 等)创建一个新的、浅拷贝的 数组 实例。 对象 转化为 数组 的三种 方法 Object .keys(obj) -----根据 对象 的键形成的 数组 (常用) Object .entries(obj) ---- 根据 对象 的键值对形成的 数组 Object .values(obj)----根据 对象 的值形成的 数组 。for- in 的返回值可以是 对象 的属性名(键名)和属性值,而 Object .values(obj)只返回属性值。for-in 循环可以枚举原型链中的属性,而 Object .values(obj)不可以。 var obj = { name: '小明', age: 22 }; var arr = Object .values(obj) ; // 对象 转化为 数组 console.log(arr); // ['小明', 22] 字符串转化为 数组 var str= "abc"; var arr = Object .values(str) ; /字符串转化为 数组 console.log(arr); // ['a', 'b','c'] 在开发中,前端处理数据,很多时候都会用到把 对象 转成 数组 ,话不多说,咱们直接上代码 // 对象 数组 ,想要转成什么字段根据需求 function fmObjToArr (data) { let arr = [] for (let key in data) { arr.push({ label: data[key], // label 字段 value: key // value字段 return arr //举一个例子 一些 ES6 中部分 数组 新增 方法 对象 新增 方法 的简单介绍 Array .of() 方法 用于将一组数值 转为 数组 ,并且弥补了ES5中的 Array ()的不足, Array ()传入参数小于2时,返回的结果是不同的,而 Array .of()就完美解决了这个问题。代码如下: 3. 数组 实例的 方法 3.1 find() find() 方法 用于找出 数组 中第一个符合的成员,和indexOf()类似,但是它得到的是成员和undefined,而不是下标和-1;fi 6.some()、every() 参数:函数-------- 返回值:true/false。2.includes() 参数:数值 -------- 返回值:true/false。4.forEach() 参数:函数-------- 返回值:undefined。3.map()、filter() 参数:函数-------- 返回值: 数组 。1. Array .from()是内置 对象 Array 方法 ,实例 数组 不能调用。5.find() 参数:函数-------- 返回值:数值。 将一个类 数组 对象 转换为 数组 在很多时候都显得很有必要,可以 使用 数组 相关的api等,所以 ES6 中对类 数组 对象 数组 给出了相应的 方法 。 1、 Array .from():用以将类 数组 对象 转换为 数组 。 ES5中对类 数组 数组 的方式为: let array Like = { '0': 'a', '1': 'b', '2': 'c', length: 3 Set类似于 数组 ,但是成员的值都是唯一的,没有重复的值。Set 本身是一个构造函数,用来生成 Set 数据结构。 const s = new Set(); let arr = [2, 3, 5, 4, 5, 2, 2] arr.forEach(x => s.add(x)); console.log(s); //Set(4) { 2, 3, 5, 4 } Set 函数可以接受一个 数组 (或者具有 iterable 接口的其他数据结构)作为参数,用来初始化。 let arr = [12,3,