美文网首页
Array.from()和new set()用途

Array.from()和new set()用途

作者: 小程要谦虚 | 来源:发表于2021-03-29 17:38 被阅读0次

来自https://segmentfault.com/a/1190000020221170
JavaScript 中有一个这样的函数: Array.from:允许在 JavaScript 集合(如: 数组、类数组对象、或者是字符串、map 、set 等可迭代对象) 上进行有用的转换。
1、将类数组转换成数组

Array.from(new Set(['Alice', 'Bob'])); // => ['Alice', 'Bob']

Array.from('Name');                   // => ['N', 'a', 'm','e']

const map = new Map();
map.set('Alice', 32)
map.set('Bob', 23);
Array.from(map); // => [['Alice', 32], ['Bob', 23]]

2、克隆一个数组
Array.from() 可以很容易的实现数组的浅拷贝
3、使用值填充数组
如果你需要使用相同的值来初始化数组,那么 Array.from() 将是不错的选择。

我们来定义一个函数,创建一个填充相同默认值的数组:

const length = 3;
const init   = 0;
const result = Array.from({ length }, () => init);

result; // => [0, 0, 0]

Set 对象作用
数组去重

var arr = [1,2,3,3,1,4];
[...new Set(arr)]; // [1, 2, 3, 4]
Array.from(new Set(arr)); // [1, 2, 3, 4]
[...new Set('ababbc')].join(''); // "abc" 字符串去重
new Set('ice doughnut'); //Set(11) {"i", "c", "e", " ", "d", …}

并集

var a = new Set([1, 2, 3]);
var b = new Set([4, 3, 2]);
var union = new Set([...a, ...b]); // {1, 2, 3, 4}

交集

var a = new Set([1, 2, 3]);
var b = new Set([4, 3, 2]);
var intersect = new Set([...a].filter(x => b.has(x))); // {2, 3}

差集

var a = new Set([1, 2, 3]);
var b = new Set([4, 3, 2]);
var difference = new Set([...a].filter(x => !b.has(x))); // {1}

相关文章

网友评论

      本文标题:Array.from()和new set()用途

      本文链接:https://www.haomeiwen.com/subject/oqgbhltx.html