免费图纸网站,石家庄什么时候能解封,国内网站建设网站排名,搭建织梦网站教程数组去重 第一种方法#xff1a;先对数组进行排序sort()#xff0c;排好序#xff0c;然后把数组的当前项和后一项进行比较#xff0c;相同则使用数组的splice(相同的位置#xff0c;1)#xff0c;但是为了防止数组塌陷#xff0c;每次删除数组元素的时候要把i的值减一。… 数组去重 第一种方法先对数组进行排序sort()排好序然后把数组的当前项和后一项进行比较相同则使用数组的splice(相同的位置1)但是为了防止数组塌陷每次删除数组元素的时候要把i的值减一。 var ary[1,23,4,2,33,1,2,44,3,2,3]ary.sort(function(a,b){return a-b;});//返回的是排好序的数组for(var i0;iary.length;i){if(ary[i]ary[i1]){ary.splice(i,1);i--;//为了防止数组塌陷}} 第二种方法是建立一个新数组要是原数组里面的数是头一次出现使用数组的indexOf那么就把这个数放到新数组里面否者就抛弃这个数类似于前面说的随机验证码var ary[1,23,4,2,33,1,2,44,3,2,3]var arr2[];
for(var i0;iary.length;i){
if(arr2.indexOf(art[i])-1){
arr2.push(ary[i]);
}
} 第三种方法直接拿当前项与后一项进行比较相同的要删除,使用数组splice()进行删除这里也要防止数组塌陷var ary[1,23,4,2,33,1,2,44,3,2,3]
for(var i0;iary.length;i){
for(var ji1;jary.length;j){if(ary[i]ary[j]){
ary.splice(j,1);
j--;
}
}
} 第四种方法利用对象不重名的特性对象的存储是键值对方式要获取属性值要通过对象./[]属性来获取相同则删除也要防止数组塌陷var ary[1,23,4,2,33,1,2,44,3,2,3]
//新建一个对象
var obj{};
for(var i0;iary.length;i){
var curary[i];
//如果obj【cur】为真那就说明对象里面找到了这个数重复了
if(obj[cur]){
ary.splice(i,1);
i--;
}else{
//给对象赋值 说明obj.xxxundefined 不存在为假
obj[cur]cur;//obj【1】1
}
} 第五种方法也是利用对象不重名的方法但是这次是直接计算其数组各个数的重复次数var ary[1,23,4,2,33,1,2,44,3,2,3]
var obj{};
for(var i0;iary.length;i){var curary[i];if(obj[cur]){//每次重复一次其对应的值加一obj[cur];
}else{
//说明没有重复个数只有一个
obj[cur]1;
}
}
var ary2[];
//对于对象使用in 方法进行遍历遍历获取的是属性值
for(var attr in obj){ary2.push(Number(attr));
}第六种方法使用ES6中的Set数据结构中重复项不生效的特性let arr [1,2,3,3,2,4,5];let list new Set(arr);console.log(list,list); // 1,2,3,4,5 但是对于数据的数据类型是不会进行转换的所以一定要注意元素的数据类型是否是一致 数组去重的面试题 找出这次考试中最高分及最高分出现的次数 //思路全部人的成绩是一个数组这就相当于使用数组去重的方法找到最高的分数和其次数首先找到了去重的数组进行从小到大的排序得到次数然后通过最高分所对应的索引值得到出现的最高分var ary [1, 23, 4, 2, 33, 1, 2, 44, 3, 2, 3];var obj {};for(var i 0; i ary.length; i) {//把数组的值当作对象的索引赋值给对象所以通过对象索引获取的是数组出现的次数var cur ary[i];if(obj[cur]) {//每次重复一次其对应的值加一obj[cur];} else {//说明没有重复个数只有一个obj[cur] 1;}}//分数从低到高出现的次数console.log(obj);var ary2 [];//对于对象使用in 方法进行遍历遍历获取的是属性值for(var attr in obj) {ary2.push(Number(attr));}console.log(ary2);//最高分console.log(ary2[ary2.length-1]);var countary2[ary2.length-1];//最高分出现的次数console.log(obj[count]);