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]));
相關文章
相關標籤/搜索