JavaScript from()方法
JavaScript from()方法可以用来创建数组或类数组对象。它的主要功能是将类数组对象转换为数组,比如字符串,Set 和 Map 结构,arguments 对象等。
使用方法
Array.from() 方法的第一个参数可以是一个类数组对象或者可迭代对象,比如字符串,Set 和 Map 结构,arguments 对象等。
var arrayLike = { '0': 'a', '1': 'b', '2': 'c', length: 3 }; // ES5的写法 var arr1 = [].slice.call(arrayLike); // ['a', 'b', 'c'] // ES6的写法 var arr2 = Array.from(arrayLike); // ['a', 'b', 'c']
Array.from() 方法还可以接受第二个参数,作用类似于数组的map方法,用来对每个元素进行处理,将处理后的值放入返回的数组。
Array.from(arrayLike, x => x * x); // 等同于 Array.from(arrayLike).map(x => x * x); // [0, 1, 4]
Array.from() 方法还可以接受第三个参数,作用类似于数组的map方法,用来绑定this。
Array.from(arrayLike, function (x) { return this.x * this.x; }, {x: 3}); // [9, 9, 9]
Array.from() 方法可以将字符串转为数组,并且支持第二个参数,可以用来指定字符串分隔符。
Array.from('hello world', x => x.charAt(0).toUpperCase() + x.slice(1)).join(' '); // "Hello World"
Array.from() 方法可以将 Set 结构转为数组。
let set = new Set(['a', 'b', 'c']); Array.from(set); // ['a', 'b', 'c']
Array.from() 方法可以将 Map 结构转为数组。
let map = new Map([[1, 'one'], [2, 'two'], [3, 'three']]); Array.from(map); // [[1, 'one'], [2, 'two'], [3, 'three']]