js array 数组相关操做汇总

快速新建数组

Array.fill

fill() 方法用一个固定值填充一个数组中从起始索引到终止索引内的所有元素,MDN相关参考连接javascript

var array = new Array(10).fill('test').map((v, i) => {
  return {
    number: i
  }
});

新建一个长度为10的数组,用一个固定值test做为填充,fill()方法将会返回一个新的数组:java

而后使用map函数对数组进行操做,这样就能快速新建长度为10的数组,v的值是'test',i 是序号,从0 开始,如图:es6

Array.from

Array.from() 方法从一个相似数组或可迭代对象中建立一个新的数组实例,MDN参考连接数组

如:函数

var array = '123456789';spa

Array.from(array)获得3d

Array.from('我是传奇')获得code

‘123456’ 和 '我是传奇' 都是可迭代对象对象

建立一个长度为10的数组,下标为2的值为889:blog

Array.from({ 2:889,length:10 })

再加上一个map函数:

Array.from({ 2:889, length: 10}, (n,i) =>  n + i )

数组去重

对单个数组去重,能够使用es6的Set去重

var arr = [1,2,3,4,5,,78,1,,12,4,5,'a','a'];
var newArr = Array.from(new Set(arr));
console.log(newArr);

两个数组去重合并,并集,能够先使用concat将数组合并,再使用Set去重

var arr = [1,2,3,4,5,,78,1,,12,4,5,'a','a'];
var arr1 = [1,2,5,99,0,'a'];
function combine(arr1, arr2){ 
  return Array.from(new Set(arr1.concat(arr2)));
}
console.log(combine(arr,arr1));

找到两个数组中相同的元素,也就是找出两个数组的交集

var arr = [1,2,3,4,5,,78,1,,12,4,5,'a','a'];
var arr1 = [1,2,5,99,0,'a'];
var intersection = new Set(arr.filter((n) => arr1.includes(n)));
console.log(intersection);

找出两个数组中元素的不同的元素,差集

var arr = [1,2,3,4,5,,78,1,,12,4,5,'a','a'];
var arr1 = [1,2,5,99,0,'a'];
var diffA = new Set(arr.filter((n) => !arr1.includes(n)));
var diffB = new Set(arr1.filter((n) => !arr.includes(n)));
console.log(diffA,diffB);
console.log(new Set([...diffA,...diffB]));
相关文章
相关标签/搜索