快捷搜索: 王者荣耀 脱发

中国移动苏州研发中心前端笔试(2)

14.数组去重方法(保留不重复的数据) //方法一 var arr = [1,23,1,1,1,3,23,5,6,7,9,9,8,5]; function removeDuplicatedItem(arr) { for(var i = 0; i < arr.length-1; i++){ for(var j = i+1; j < arr.length; j++){ if(arr[i]==arr[j]){ arr.splice(j,1);//console.log(arr[j]); j–; } } } return arr; }

arr2 = removeDuplicatedItem(arr); console.log(arr); console.log(arr2);

//方法二 //借助indexOf()方法判断此元素在该数组中首次出现的位置下标与循环的下标是否相等 var ar = [1,23,1,1,1,3,23,5,6,7,9,9,8,5]; function rep2(arr) { for (var i = 0; i < arr.length; i++) { if (arr.indexOf(arr[i]) != i) { arr.splice(i,1);//删除数组元素后数组长度减1后面的元素前移 i–;//数组下标回退 } } return arr; } var a1 = rep2(ar); console.log(ar); console.log(a1);

//方法三 利用数组中的filter方法 var arr = [‘apple’,’strawberry’,’banana’,’pear’,’apple’,’orange’,’orange’,’strawberry’]; var r = arr.filter(function(element,index,self){ return self.indexOf(element) === index; }); console.log(r);

//方法四 借助新数组 通过indexOf方判断当前元素在数组中的索引如果与循环的下标相等则添加到新数组中 var arr = [1,23,1,1,1,3,23,5,6,7,9,9,8,5]; function rep(arr) { var ret = []; for (var i = 0; i < arr.length; i++) { if (arr.indexOf(arr[i]) == i) { ret.push(arr[i]); } } return ret; } arr2 = rep(arr); console.log(arr); console.log(arr2);

经验分享 程序员 微信小程序 职场和发展