json格式
json格式就是数组的对象和互相嵌套构成的一种复杂数据结构,json本身可以是数组也可以是对象。
补充:对象的属性名引号是可加可不加的,但json数据很多时候会用于前后端交互。
如果json数据运用于前后端交互的时候,对象的属性名必须要加双引号。
例:
var arr = [ {
‘name’ : ‘小明’
“age” : 17},
{name : ‘xiao’ ,
age :10}]
var preson = {“name” : ‘cxk’
“likes” : [“唱”,“跳”,“rap”]
}
去重:重复的元素只保留一个。
1、双重for循环,只留下不重复的
1 for(var 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)//完成去重