Array.from的常见用法

官方解释:Array.from() 方法从一个类似数组或可迭代对象创建一个新的,浅拷贝的数组实例。
也就是 可以将Array,Set,Map浅拷贝一个新数组

Array.from可以接受三种类型的参数:
1,Array.from (obj, mapFn)

//将数组中布尔值为false的成员指为0
Array.from([1, ,2,3,3], x => x || 0) //[1,0,2,3,3]
 
//将一个类似数组的对象转为一个数组,并在原来的基础上乘以2倍
let arrayLike = { '0': '2', '1': '4', '2': '5', length: 3 }
Array.from(arrayLike, x => x*2) //[4,8,10]
 
//将一个set对象转为数组,并在原来的基础上乘以2倍
Array.from(new Set([1,2,3,4]), x => x*2) //[2,4,6,8]

2,Array.from ({length:n}, Fn)
可以重复数组中每一项

Array.from({length:3}, () => 'jack') //["jack", "jack", "jack"]
 
Array.from({length:3}, item => (item = {'name':'shao','age':18})) //[{'name':'shao','age':18}, {'name':'shao','age':18}, {'name':'shao','age':18}]
 //注意第二个参数从0开始累加,_第一个参数为undefined
Array.from({length: 2}, (_, i) => item = {index:i});//生成一个index从0到4的数组对象[{index: 0},{index: 1}]

3,Array.from(string) 
可以将字符串转换为数组

Array.from('abc') //['a','b','c']

你可能感兴趣的:(Array.from的常见用法)