json格式和去重的三种方法

json格式

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

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

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

    例:var arr = [ {

      ‘name’ : ‘小明’

      “age” : 17},

      {name : ‘xiao’ ,

      age :10}]

            var preson = {“name” : ‘cxk’

      “likes” : [“唱”,“跳”,“rap”]}

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

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

  for(var i = 0; i < arr.length-1; i++){

    for(var j = i+1; j < arr.length; j++){

       if(arr[i] === arr[j]){

            arr.splice(j,1)  

            j- -   //删完之后j-1抵消for里面的j++确保不跳过重复的值

        }

      }

    }

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)//完成去重

猜你喜欢

转载自www.cnblogs.com/52580587zl/p/12675662.html