array方法之from方法

Array.from()方法用于从类数组对象或可迭代对象创建一个新的数组实例。它可以转换字符串、Map、Set等,并支持浅复制以及使用映射函数进行元素处理。例如,它能将字符串拆分成字符数组,Map和Set转换为普通数组,以及处理自定义对象。此外,Array.from()还能接受第二个参数作为映射函数,第三个参数指定映射函数中的上下文。
摘要由CSDN通过智能技术生成

Array.from()的第一个参数是一个类数组对象,即任何可迭代的结构,或者一个有length属性和可索引属性的结构
1,字符串会被拆分为单字符数组

console.log(Array.from('matt'));
//['m','a','t','t']

2,可以使用from将集合和映射转换为一个新数组

const m = new Map().set(1,2).set(3,4);
const s = new Set().add(1).add(2).add(3).add(4);
console.log(Array.from(m));
//[[1,2],[3,4]]
console.log(Array.from(s));
//[1,2,3,4]

3,Array.from()对现有数组执行浅复制

const a1 = [1,2,3,4];
const a2 = Array.from(a1);

console.log(a1);//[1,2,3,4]
alert(a1 === a2);//false

4,可以使用任何可迭代对象

const iter = {
*Symbol.iterator](){
yield 1;
yield 2;
yield 3;
yield 4;
}
};
console.log(Array.from(iter));//[1,2,3,4]

5,arguments对象可以被轻松地转换为数组

function getArgsArray(){
return Array.from(arguments);
}
console.log(getArgsArray(1,2,3,4));//[1,2,3,4]

6,from()也能转换带有必要属性的自定义对象

const arryaLikeObject ={
0:1,
1:2,
2:3,
3:4,
length:4
};
console.log(Array.from(arrayLikeObject));
//[1,2,3,4]

7,from方法可以接收第二个可选得映射函数参数,还可以接收第3个参数,用于指定映射函数中this的值

const a1 = [1,2,3,4];
const a2 = Array.from(a1,x =>x**2);
const a3 = Array.from(a1,function(x){return x**this.exponent},{exponent:2});
console.log(a2);
//[1,4,9,16]
console.log(a3);
//[1,4,9,16]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值