Array.from()方法就是将一个类数组对象或者可遍历对象转换成一个真正的数组。那么什么是类数组对象呢所谓类数组对象最基本的要求就是具有length属性的对象。Array.from可以接受三个参数Array.from(arrayLike[, mapFn[, thisArg]])arrayLike被转换的的对象。mapFnmap函数。thisArgmap函数中this指向的对象。第一个参数arrayLike需要转换的数组。第二个参数map函数用来对转换中每一个元素进行加工并将加工后的结果作为结果数组的元素值。console.log(Array.from([1, 2, 3, 4, 5], (n) n 1)); //箭头函数 console.log(Array.from([1, 2, 3, 4, 5], function(n){ return n1; })); //普通函数 [2, 3, 4, 5, 6]第三个参数map函数中this指向的对象将被处理的数据和处理对象分离let diObj { handle: function(n){ return n 2 } } console.log(Array.from( [1, 2, 3, 4, 5], function (x){ return this.handle(x); //调用diObj中的handle方法 }, diObj)); //结果[3, 4, 5, 6, 7]1.部署了Iterator接口的对象比如SetMapArray。2.类数组对象什么叫类数组对象就是一个对象必须有length属性没有length转出来的就是空数组。转换map将Map对象的键值对转换成一个一维数组。实际上转换出来的数组元素的序列是key1,value1,key2,value2,key3,value3…const map1 new Map(); map1.set(k1, 1); map1.set(k2, 2); map1.set(k3, 3); console.log(Array.from(map1));转换set将Set对象的元素转换成一个数组。const set1 new Set(); set1.add(1).add(2).add(3) console.log(Array.from(set1));转换字符串console.log(Array.from(hello world));返回数组[“h”, “e”, “l”, “l”, “o”, , “w”, “o”, “r”, “l”, “d”]类数组对象一个类数组对象必须要有length他们的元素属性名必须是数值或者可以转换成数值的字符。注意属性名代表了数组的索引号如果没有这个索引号转出来的数组中对应的元素就为空。console.log(Array.from({ 0: 0, 1: 1, 3: 3, length:5 }))如果对象不带length属性那么转出来就是空数组。console.log(Array.from({ 0: 0, 1: 1 })); //结果[]对象的属性名不能转换成索引号时。console.log(Array.from({ a: 1, b: 2, length:2 })); //结果[undefined, undefined]