1. Array.prototype.from()
Array.prototype.from 方法使用方式如下
Array.from(obj, mapFn, thisArg);
Array.prototype.from 方法用于将拥有 length 属性的类数组对象或可迭代的对象来返回一个数组。
第一参数 obj
要转换为数组的对象,此参数为必需参数,没有会报错。我们传入一个类数组对象来举例。
let obj = {
"0": "Jethro",
"1": 18,
"2": "man",
length: 3,
}
let res = Array.from();
console.log(res);
执行结果如下
字符串也可以用下标访问,并且也有 length
属性,我们依然可以传入字符串来转换成数组
let str = "jethro";
let res = Array.from(str);
console.log(res);
结果如下
此方法产生数组的长度由 length 属性值决定,如果传入的对象没有 length 属性,默认取 0 。
let obj = {
"1": "Jethro",
"2": 18,
"3": "man",
}
let res = Array.from(obj);
console.log(res);
如果传入的对象带有 length 属性但不是类数组对象,该方法虽然会产生数组,但无法通过下标正常访问对象的属性值。访问对象不存在的属性(下标)将得到 undefined,所以会产生如下结果
意义不大,看看就好
第二个参数 mapFn
传入一个函数,生成的数组中每一项,都会传入这个函数执行,并得到返回值。