一、数组扁平化是指将一个多维数组变为一个一维数组

  1. const arr = [1, [2, [3, [4, 5]]], 6];
  2. // => [1, 2, 3, 4, 5, 6]
  3. //-------------------------------------------------------------------------------------
  4. // 方法1
  5. const array = arr.flat(Infinity)
  6. // 方法2
  7. const res2 = JSON.stringify(arr).replace(/\[|\]/g, '').split(',');

二、数组去重

  1. const arr = [1, 1, '1', 17, true, true, false, false, 'true', 'a', {}, {}];
  2. // => [1, '1', 17, true, false, 'true', 'a', {}, {}]
  3. //-------------------------------------------------------------------------------------
  4. //方法1(set)
  5. const res1 = Array.from(new Set(arr));
  6. //方法2 (filter)
  7. const unique4 = arr => {
  8. return arr.filter((item, index) => {
  9. return arr.indexOf(item) === index;
  10. });
  11. }
  12. //方法3 (Map)
  13. const unique5 = arr => {
  14. const map = new Map();
  15. const res = [];
  16. for (let i = 0; i < arr.length; i++) {
  17. if (!map.has(arr[i])) {
  18. map.set(arr[i], true)
  19. res.push(arr[i]);
  20. }
  21. }
  22. return res;
  23. }