JavaScript工具函数--数组相关

/**
 * 数组去重
 * @param arr
 * @returns {*[]}
 */
function  deDuplication(arr) {
  return [...new Set([...arr])];
}

/**
 * 数组平铺
 * @param arr
 * @returns {Array}
 */
function flattenArray(arr) {
  return arr.reduce((prev, curr) => {
    if (!Array.isArray(curr)) {
      // 当前元素不是数组
      return [...prev, curr];
    } else {
      // 当前元素是数组
      return [...prev, ...flattenArray(curr)];
    }
  }, []);
}

/**
 * 数组平铺2
 * @param arr
 */
function flattenArray1(arr) {
  const res = [];

  function flat(arr) {
    for (let item of arr) {
      if (!Array.isArray(item)) {
        res.push(item);
      } else {
        res.concat(flat(item));
      }
    }
  }

  flat(arr);
  return res;
}

/**
 * 实现数组乱序
 * @param array
 */
function shufferArray(array) {
  return array.sort((item1, item2) => {
    const sign = Math.random() > 0.5 ? 1 : -1;
    return (item1 - item2) * sign;
  })
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值