JavaScript:json数组去重

实现思路


  1. 定义一个新的数组,用于存放去重后的json数组

  2. for循环对比每组object,如果不同就push进新数组

源码展示


// 比较两组 json 是否相同
ifCompare(object1, object2) {
  var o1keys = Object.keys(object1)
  var o2keys = Object.keys(object2)
  if (o2keys.length !== o1keys.length) return false
  for (let i = 0; i < o1keys.length; i++) {
    const key = o1keys[i]
    if (!o2keys.includes(key)) return false
    if (object2[key] !== object1[key]) return false
  }
  return true
}

// json数组去重
let arrayNew = []
const jsonArray = [{ a1: 'a', a2: 'c' }, { a1: 'a', a2: 'b', a3: 'c' }, { a1: 'a', a2: 'c' }, { a2: 'c', a1: 'a' }]
if (jsonArray.length > 0) {
  arrayNew = [jsonArray[0]]
  for (let i = 0; i < jsonArray.length; i++) {
    var flag = false
    for (let j = 0; j < arrayNew.length; j++) {
      if (this.ifCompare(jsonArray[i], arrayNew[j])) {
        flag = true
      }
    }
    if (!flag) {
      arrayNew.push(jsonArray[i])
    }
  }
}
console.log('jsonArray', jsonArray)
console.log('arrayNew', arrayNew)

代码分析


 

原文地址:https://www.cnblogs.com/guisenbin/p/15160526.html