再谈 javascript 数组去重
前言 数组去重方法老生常谈,既然是常谈,我也来谈谈 双层循环 也许我们首先想到的是使用 indexOf 来循环判断一遍,但在这个方法之前,让我们先看看最原始的方法: var array = [1,1,'1','1']; function unique(array) { var res = []; for(var i = 0, arrayLen = array.length; i < arrayLen; i++) { for(var j = 0, resLen = res.length; j < resLen; j++) { if(array[i] === res[j]) { break; } } // 如果 array[i] 是唯一的,那么执行完循环, j 等于 resLen if(j === resLen) { res.push(array[i]) } } return res } console.log(unique(array)) // [1, '1'] 在这个方法中,我们使用循环嵌套,最外层循环 array, 里面循环 res, 如果 array[i]的值跟 res[j] 的值相等,就跳出循环,如果都不等于,说明元素是唯一的,这时候j的值就会等于 res 的长度,根据这个特点进行判断,将值添加进 res。 看起来很简单吧,之所以要讲一讲这个方法,是因为兼容性好。