一、push内置对象
在写数组去重前先了解push对象
push() 方法将一个或多个元素添加到数组的末尾,并返回该数组的新长度。
具体语法:
var arr=[1,2,3,'crazy'];
arr.push('我是新增的');
console.log(arr);//返回的是新增的数组 此时数组长度length应该为五
console.log(arr.push('我是继续新增的'));//返回的是继续新增的数组长度 此时数组长度为6
console.log(arr);//返回继续新增后的数组
运行截图如下:
二、 indexOf内置对象
还有了解一下寻找数组元素索引的方法
indexOf()方法返回在数组中可以从前往后找到一个给定元素的第一个索引,如果不存在,则返回-1。
具体语法:
// 返回数组元素索引号方法 indexOf(数组元素) 作用就是返回该数组元素的索引号 从前面开始查找
// 它只返回第一个满足条件的索引号
// 它如果在该数组里面找不到元素,则返回的是 -1
var arr = ['red', 'green', 'pink'];
console.log(arr.indexOf('blue'));//因为找不到blue 所以返回的是-1
此时返回-1 因为找不到元素
var arr = ['red', 'green', 'pink','blue'];
console.log(arr.indexOf('blue'));//blue在原数组中索引为3 所以返回3
此时返回blue的索引4
三、数组去重算法
数组去重 [‘c’, ‘a’, ‘z’, ‘a’, ‘x’, ‘a’, ‘x’, ‘c’, ‘b’] 要求去除数组中重复的元素。
/1.目标: 把旧数组里面不重复的元素选取出来放到新数组中, 重复的元素只保留一个, 放到新数组中去重。
2.核心算法: 我们遍历旧数组 然后拿着旧数组元素去查询新数组 如果该元素在新数组里面没有出现过 我们就添加,否则不添加。
这样新数组就没有旧数组中重复的元素了,达到了数组去重的目的
3.我们怎么知道该元素没有存在?利用 新数组.indexOf(数组元素) 如果返回时 - 1 就说明 新数组里面没有改元素
封装一个去重的函数
具体代码实现:
function deduplication(array)
{
var arc=[];//新数组
for (var i = 0; i< array.length; i++) //遍历旧数组
{
if(arc.indexOf(array[i])===-1)//全等 数值类型 数组都相等
//在新数组中寻找是否出现过 旧数组array[i] 等于-1说明没有出现过
{
arc.push(array[i]);//把旧数组的值放进新数组内
// arc[arc.length] = array[i];
}
else continue;//退出本次循环
}
return arc;//返回新数组
}
arb = ['c', 'a', 'z', 'a', 'x', 'a', 'x', 'c', 'b'];//需要去重的数组 即旧数组
console.log(deduplication(arb));//输出
运行截图如下: