冷门方法的知识总结

232 阅读1分钟

1.Array.from

官方解释是:

Array.from() 方法从一个类似数组或可迭代对象创建一个新的,浅拷贝的数组实例;

粗浅理解就是对象变数组呗。。大神可以忽略这句话;

普通用法我相信都会,比如:

let arrayLike = {    0: 'tom',     1: '65',    2: '男',    3: ['jane','john','Mary'],    'length': 4}let arr = Array.from(arrayLike)console.log(arr) // ['tom','65','男',['jane','john','Mary']]

但是这类型就不能转了,记录一下:

let arrayLike = {
'name': 'tom',
'age': '65',
'sex': '男',
'friends': ['jane','john','Mary'],
length: 4
}
let arr = Array.from(arrayLike)
console.log(arr) // [ undefined, undefined, undefined, undefined ]

总结就是这个对象的key的值,要不是数字,要不是字符串的数字,而且必须有length属性

然后还可以配合使用,对,这个就是常用的了,配合new Set去重返回数组:

const data = [1, 1, 3, 4, 6]
const result = Array.from(new Set(data)) // [1, 3, 4, 6]



还可以浅拷贝一个数组,就不举例了,主要就是记录一下他的快速生成一个数组:

const data = Array.from({ length: 12 }, () => 1)

结果生成一个[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];

其实回调里面还可以接受两个参数:

arr:想要转换成数组的伪数组对象或可迭代对象,必传;

index: 数组里面的每一项的下标

const data = Array.from({ length: 10000 }, (_, index) => index + 1)

生成一个10000个从1到10000的数组;

好了,边工作边积累,回见~