[数据方法总结]

①数组篇: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))
原文地址:https://www.cnblogs.com/studyshufei/p/8654691.html