数组对象去重
数组对象去重,在从读取数据的时候,由于用户不断地新增数据,会导致依据 pageNo 获取回来的数据不准确出现重复,这时候就要用到数据对象去重,个人觉得最常用最好用的肯定是对象变量去重法
对象变量去重法
function deWeight(data, primaryKey) {
  let obj = {}
  data.forEach(item => {
    obj[item[primaryKey]] = item[primaryKey]
  })
  return Object.values(obj)
}
复制代码
深拷贝
深拷贝如果你足够的自信不犯错,那就直接用懒狗JSON格式化来深拷贝
JSON 格式化深拷贝
function deepClone(data) {
  return JSON.parse(JSON.stringify(data))
}
复制代码
递归深拷贝
function deepClone(obj) {
  if (typeof obj !== 'object' || obj === null) {
    return data
  }
  // 初始化返回结果
  let result = obj instanceof Array ? [] : {}
  // 遍历判断
  for (let key in obj) {
      // 保证 key 不是原型的属性
      if (obj.hasOwnProperty(key)) {
          // 递归
          result[key] = deepClone(obj[key])
      }
  }
  return result;
}
复制代码
数组对象排序
有时候业务逻辑过多的话还是把升降序封装一下比较好
升序
function ascendingSort(data, key) {
  return data.sort((a, b) => (a[key] - b[key]))
}
复制代码
降序
function descendingSort(data, key) {
  return data.sort((a, b) => (b[key] - a[key]))
}
复制代码
数组对象求和
reduce
封装reduce,理由如上
function arraySum(data, key) {
  return data.reduce((prev, item) => prev + item[key], 0)
}
复制代码
                    © 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
    



















![[桜井宁宁]COS和泉纱雾超可爱写真福利集-一一网](https://www.proyy.com/skycj/data/images/2020-12-13/4d3cf227a85d7e79f5d6b4efb6bde3e8.jpg)

![[桜井宁宁] 爆乳奶牛少女cos写真-一一网](https://www.proyy.com/skycj/data/images/2020-12-13/d40483e126fcf567894e89c65eaca655.jpg)