①数组篇:json数组去重
1 var arr = [{"name":"123"},{"name":"123"},{"name":"456"},{"name":"4516"},{"name":"4516"}]; 2 function jsonArrUnique(arr){ 3 var arr1=[]; 4 var arr2=[]; 5 var arr3=[]; 6 for(var i=0;i<arr.length;i++){ 7 arr1.push(JSON.stringify(arr[i])) 8 } 9 for(var i=0;i<arr1.length;i++){ 10 if(arr2.indexOf(arr1[i])==-1){ 11 arr2.push(arr1[i]); 12 } 13 } 14 for(var i=0;i<arr2.length;i++){ 15 arr3.push(JSON.parse(arr2[i])) 16 } 17 return arr3; 18 } 19 console.log(jsonArrUnique(arr))
①数组篇:string数组去重
1 var arr = ['asa','s','s','小飞','小飞','7','7']; 2 function stringArrUnique(arr){ 3 var res=[]; 4 for(var i=0;i<arr.length;i++){ 5 if(res.indexOf(arr[i])==-1){ 6 res.push(arr[i]); 7 } 8 } 9 return res; 10 } 11 console.log(stringArrUnique(arr)) //["asa", "s", "小飞", "7"]
①数组篇:string数组里值是否完全相等
1 //判断数组里的值是否全部相同 2 var arr = ['小飞','小飞','小飞','小飞']; 3 var arr1 = ['小飞','小飞','小飞','张飞']; 4 5 function isAllequal(arr){ 6 var arr1=[];//存放去重后的值 7 for(var i=0;i<arr.length;i++){ 8 if(arr1.indexOf(arr[i])==-1){ 9 arr1.push(arr[i]); 10 } 11 } 12 if(arr1.length===1){ 13 return true; 14 }else{ 15 return false; 16 } 17 } 18 console.log(isAllequal(arr))//true 19 console.log(isAllequal(arr1))//false
①数组篇:通过key、value或key+value获取指定的数据
先模拟后端返回的数据:
1 var data = 2 [ 3 {name:'张三',age:'18',job:'java'}, 4 {name:'李四',age:'20',job:'web'}, 5 {name:'老九',age:'24',job:'php'} 6 ];
1.通过data,key,value获取指定数据
1 //通过key、value或key,value找到对应的数据 2 var data = 3 [ 4 {name:'张三',age:'18',job:'java'}, 5 {name:'李四',age:'20',job:'web'}, 6 {name:'老九',age:'24',job:'php'} 7 ]; 8 function getData(data,key,value){ 9 for(var i=0;i<data.length;i++){ 10 if(data[i][key]===value){ 11 return data[i]; 12 break; 13 } 14 } 15 return ''; 16 }
2.通过data,value找到对应的数据,数据value不重复的情况下
1 function getData(data,value){ 2 for(var i=0;i<data.length;i++){ 3 var obj=data[i]; 4 for(var k in obj){ 5 if(obj[k]===value){ 6 return obj; 7 } 8 } 9 } 10 return ''; 11 }
3.通过data,value找到对应的数据放进一个数组返回,数据value值可能有重复的情况
1 var data = 2 [ 3 {name:'张三',age:'18',job:'java'}, 4 {name:'李四',age:'20',job:'web'}, 5 {name:'老九',age:'20',job:'php'} 6 ]; 7 function getData(data,value){ 8 var arr=[]; 9 for(var i=0;i<data.length;i++){ 10 var obj=data[i]; 11 for(var k in obj){ 12 if(obj[k]===value){ 13 arr.push(obj); 14 } 15 } 16 } 17 return arr; 18 } 19 console.log(getData(data,'20')) 20 //[{name: "李四", age: "20", job: "web"},{name: "老九", age: "20", job: "php"}]
遍历:
1 //遍历 2 // for(var i=0;i<10;i++){} 3 // for(var k in obj){}// 该for...in语句以任意顺序迭代对象的可枚举属性。 4 // for(var k of obj)//该for...of语句迭代迭代对象定义的数据 以迭代。
数字去重:ES6 Set方法
1 var array=[1,2,3,4,5,5,6,7,7] 2 let unique= [...new Set(array)]; 3 console.log(unique)
求数组里重复的值[1, 2, 4, 4, 3, 3, 1, 5, 3]=>[4,3,1]
1 function duplicates(arr) { 2 var arg=[] 3 var arg1=[] 4 for(var i=0;i<arr.length;i++){ 5 if(arg.indexOf(arr[i])==-1){ 6 arg.push(arr[i]) 7 }else if(arg1.indexOf(arr[i])==-1){ 8 arg1.push(arr[i]) 9 } 10 } 11 return arg1 12 } 13 var arr=[1, 2, 4, 4, 3, 3, 1, 5, 3] 14 console.log(duplicates(arr))//[4,3,1]
合并对象:
1 var a={name:'S'} 2 var b={age:'r'} 3 console.log(Object.assign(a,b))