JS: 通过.from()、.flat()、.sort()和Set对象实现数组的扁平化去重与排序

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

传入一个函数,生成的数组中每一项,都会传入这个函数执行,并得到返回值。


                
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值