js ---数组去重

mac2026-06-13  11

去除数组中的重复项

分析:首先,先创建一个新的空数组,遍历需要去重的数组,然后,将没有重复的数组元素添加到新的这个空的数组中。

方法一:用两个for循环

var arr = [20,20,30,30,60,15,29,15]; function arr_2(arr) { var result=[]; var num = result.length; // 遍历数组arr[] for(var i = 0;i < arr.length;i ++) { // 遍历数组result,但是result的length在变化 for(var j = 0;j<result.length;j++) { // 如果arr[i]等于result[j],就跳出循环,不让 j++ ,此时跳出循环的j,没有到 result.length if(arr[i] == result[j]) { break; } } //随后判断,j 是否等于 result.lenght,如果等于,则这个for循环运行到了最后,没有中途break,即没有重复项,就添加到新的数组中,否则,不添加到新的数组中 if(j==result.length) { result[result.length] = arr[i]; } } console.log(result) } arr_2(arr)

方法二:用关联数组,哈希数组(一个for循环)

function hash(arr){ // 创建两个空数组, for(var i=0,result=[],new_arr=[];i<arr.length;i++) { // arr的数据存放 为result的下标(下标是唯一的),若下标为undefined,则没有创建这个下标,若不为undefined,则已经存在这个下标 if(result[ arr[i] ]===undefined) { // 根据result 中不重复的下标---arr[i] (将arr的重复项 自动不记录在内) 然后赋值给 new_arr[] ---------根据下标不重复,来 将不重复的元素添加到 新的数组 中 new_arr[ new_arr.length ]=arr[i]; // 这里是给result 数组 的不同下标 存储数据 ,让已创建的下标的内容不为 undefined ,好进行下一次的判断 result[arr[i]]=true; } } console.log(new_arr) } hash(arr)

方法三:用ES6 set方法

Array.prototype.fun = function(){ return Array.from( new Set( this ) ) } let arr =[1,2,3,3,4,5,4,4] arr.fun()
最新回复(0)