array.from 用于将类数组或可迭代对象转为新数组,不直接排序或去重;需配合 set 去重(基本类型简洁高效)、sort() 排序(数字需比较函数)、filter 或 map 实现对象字段去重,所有操作均返回新数组,保持原数据不变。

Array.from 本身不直接排序或去重,它只是将类数组或可迭代对象转换为新数组。要实现排序与唯一性处理,需配合其他方法(如 sort()、filter()、Set)一起使用。
用 Array.from + Set 去重
利用 Set 自动去除重复值的特性,再用 Array.from 转回数组:
- 适用于字符串、数字等基本类型;引用类型需手动比较
- 保持原始顺序(Set 遍历顺序即插入顺序)
- 写法简洁:
Array.from(new Set([1, 2, 2, 3])) → [1, 2, 3]
用 Array.from + sort 排序
Array.from 创建副本后调用 sort(),避免修改原数据:
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
- 数字排序需传入比较函数:
(a, b) => a - b,否则按字符串排序 - 可链式调用:
Array.from(arr).sort((a, b) => a - b) - 若原数据是类数组(如 arguments、NodeList),必须先转数组才能 sort
组合去重 + 排序(一步到位)
先去重再排序,顺序不能颠倒(排序后再去重会破坏顺序逻辑):
Array.from(new Set([3, 1, 2, 2, 1])).sort((a, b) => a - b)- 若需降序,改用
(b - a) - 对字符串数组,可用
localeCompare()安全排序:.sort((a, b) => a.localeCompare(b))
处理对象数组的唯一性
Set 对对象按引用去重,如需按字段(如 id)去重,需配合 filter 或 reduce:
- Array.from 配合 filter 实现字段级去重:
arr.filter((item, i, self) => self.findIndex(v => v.id === item.id) === i) - 也可先用 Map 缓存已见 id,再 Array.from 提取值,效率更高
- 注意:Array.from 不改变原数组结构,所有操作都返回新数组,适合函数式写法
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










