Javascript二維陣列Array轉換一維陣列及filter過濾重複值

7 月 4, 2019 | | 0 comments

二維陣列扁平化

三種不同的解決方法 將二維陣列合併為單一的陣列

給定一個陣列:

var myArray = [[1, 2],[3, 4, 5], [6, 7, 8, 9]];

我們想得到這個結果:

[1, 2, 3, 4, 5, 6, 7, 8, 9]

方法一:

var myNewArray = [];
for (var i = 0; i 

方法二:

var myNewArray = myArray.reduce(function(prev, curr) {
  return prev.concat(curr);
});
// [1, 2, 3, 4, 5, 6, 7, 8, 9]

方法三:

var myNewArray = [].concat.apply([], myArray);
// [1, 2, 3, 4, 5, 6, 7, 8, 9]

過濾陣列中重複的元素

利用這個函式,我們可以使用在過濾陣列中重複的元素

var originArr = [1, 'a', 1, 'a'];

var deduped = originArr.filter(function(el, i, arr){
    return arr.indexOf(el) === i;
});

console.log(deduped); // [1, 'a']

用 ES6 的語法可以寫得更簡潔

var originArr = [1, 'a', 1, 'a'];

var deduped = originArr.filter((el, i, arr) => arr.indexOf(el) === i);

console.log(deduped); // [1, 'a']

分享來源:幾個實用的 JS 小技巧