JavaScript 数组去重详解
时间:2021-11-21 10:50:51|栏目:JavaScript代码|点击: 次
1.数组去重
/********************************************** ?^description: ?^作者: 麒麟社 ?^时间: 2021-09-13 22:26:21 ?^名称: V1.0.5 ***********************************************/ var obj = ['麒麟','社','CC','DD','麒麟','社','11',11] //定义一个新的数组 var s = []; //遍历数组 for(var i=0;i<obj.length;i++){ if(s.indexOf(obj[i]) == -1){ //判断在s数组中是否存在,不存在则push到s数组中 s.push(obj[i]); } } console.log(s);
2.数组去重里面的对象去重
/********************************************** ?^description: ?^作者: 麒麟社 ?^时间: 2021-09-13 22:26:21 ?^名称: V1.0.5 ***********************************************/ var old_data = [ { name:'ccc', age:'18' }, { name:'peng', age:'18' }, //去除peng重复 { name:'aaa', age:'18' }, { name:'peng', age:'18' }, ] // 方法1:利用对象访问属性的方法,判断对象中是否存在key var result = []; var obj = {}; old_data.forEach(function (data) { if(!obj[data.name]){ result.push(data); obj[data.name] = true; } }) console.log(result);
3.根据数组某个字段相同,修改另外字段值
/********************************************** ?^description: ?^作者: 麒麟社 ?^时间: 2021-09-13 22:26:21 ?^名称: V1.0.5 ***********************************************/ var oldData = [ { name:'cccc', age:'5656' }, { name:'cccc', age:'22dddsada' }, { name:'cccc', age:'22dddsada' }, { name:'aaaa', age:'32' }, { name:'aaaa', age:'2dasdasdas2' }, ] var newArr = []; for (var i = 0; i <oldData.length; i++) { var item = oldData[i]; var isExists = false; for (var j = 0; j < newArr.length; j++) { var item2 = newArr[j]; if (item2.name == item.name) { isExists = true; break; } } if (isExists) { // 这里找到相同的,更改一样的 if(item.name == 'cccc'){ item.age = '222222' item2.age = '222222' }else{ item.age = '3333' item2.age = '3333' } newArr.push(item2); continue; } newArr.push(item); } console.log(newArr)