首页 > 技术文章 > json格式和去重的三种方法

52580587zl 2020-04-10 19:42 原文

json格式

   json格式就是数组的对象和互相嵌套构成的一种复杂数据结构,json本身可以是数组也可以是对象。

  补充:对象的属性名引号是可加可不加的,但json数据很多时候会用于前后端交互。

  如果json数据运用于前后端交互的时候,对象的属性名必须要加双引号。

    例:

var arr = [ {
      ‘name’ : ‘小明’
      “age” : 17},
      {name : ‘xiao’ ,
      age :10}]
          var preson = {“name” : ‘cxk’
      “likes” : [“唱”,“跳”,“rap”]
            }       

 

去重:重复的元素只保留一个

1、双重for循环,只留下不重复的

 1   forvar i = 0; i < arr.length-1; i++){
 2 
 3     for(var j = i+1; j < arr.length; j++){
 4 
 5        if(arr[i] === arr[j]){
 6 
 7             arr.splice(j,1)  
 8 
 9             j- -   //删完之后j-1抵消for里面的j++确保不跳过重复的值
10 
11         }
12 
13       }
14 
15     }

 

2、利用对象属性名不冲突

  可以把数字作为对象的属性名

   例:  var obj = {4:‘lisi’}

  遍历数组,判断当前数组元素作为对象属性名是否能取到值

  如果取不到,说明这是第一次遍历到当前值,就把当前元素作为对象属性名赋值。

       如果取到了,说明之前已经赋值过了,也就是说当前值不是第一次出现。

     例:

var arr = [4,2,4,5,6,6,74,1]

    var obj = {}

           var arr1 = []

          arr.forEach(function (item){

    //把item作为属性名到对象里去取值看能否取到

    if(obj[item]){

    //取到值了,说明item不是第一次出现,说明item是一个无效值,就不用push到arr1里面

    }else{

      //取不到值,说明item是第一次出现,就给他赋值,赋个有意义的值。

      //item是第一次出现,他是我们要保留的值

      obj[item] = ‘a’

      arr.push(item)}

      }

 

3、ES6(Set是一种新的数据类型,加强版数组,默认不允许重复)

    例:

                  var arr = [5,6,7,3,25,6]

            var arr1 = Array.from(new Set(arr))

            console.log(arr1)//完成去重

 

推荐阅读