JS不使用API进行数组去重
API(Application Programming Interface,应用程序接口)是一些预先定义的函数,或指软件系统不同组成部分衔接的约定。 [1] 目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问原码,或理解内部工作机制的细节。s
方法一
function unique(arr) {
//遍历数组arr,创建空数组result,用来装arr中不重复的值(重复的值只留一个)
for(var i = 0,result = []; i < arr.length; i++){
//遍历数组result
for(var j = 0 ;j < result.length; j++){
//令arr中的值与result的值作比较,若相等,则开始下一个值的循环,若不等,跳出循环
if (arr[i] == result[j]) {
break;
}
}
//若在result中没有找到与arr[i]相等的数,就将arr[i]添加到result
if (result.length == j) {
result[result.length] = arr[i]
}
}
//返回 result的当前值
return result;
}
//定义数组的元素
var arr = [1,2,2,4,9,6,6,7,5,2,3,5,6,5];
console.log(unique(arr))
方法二
function web(arr) {
//创建一个hash数组,再创建一个用于存放去重后元素的数组arr1
for (var i = 0,hash=[],arr1=[]; i < arr.length; i++) {
//arr里中的元素就是hash数组的下标
if(hash[arr[i]]===undefined) {
//满足条件的传入arr1
arr1[arr1.length]=arr[i];
//给hash循环传入数据
hash[arr[i]]='';
}
}
//返回去重后的数组arr1
return arr1;
}console.log(web([1,2,3,33,7,8,8,1,56,88,7,2,3]));