JavaScript怎么实现数组去重

  介绍

这篇“JavaScript怎么实现数组去重“文章,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要参考一下,对于“JavaScript怎么实现数组去重”,小编整理了以下知识点,请大家跟着小编的步伐一步一步的慢慢理解,接下来就让我们进入主题吧。

JavaScript的特点

1. JavaScript主要用来向HTML页面添加交互行为。   2. javascript可以直接嵌入到HTML页面,但写成单独的js文件有利于结构和行为的分离。   3.JavaScript具有跨平台特性,在绝大多数浏览器的支持下,可以在多种平台下运行。

<强>一、双层循环

const  unique =, (arr)=祝辞{   ,,,(let 小姐:=,0;,小姐:& lt;, arr.length;,我+ +){   ,,,,,,,,(let  j =,小姐:+,1;,j  & lt;, arr.length;, j + +) {   ,,,,,,,,,,,如果(arr[我],===,arr [j]) {   ,,,,,,,,,,,,,,,arr.splice (j, 1),,//,移除重复元素   ,,,,,,,,,,,,,,,我,,,//,修正下标   ,,,,,,,,,,,}   ,,,,,,,}   ,,,}   ,,,return  arr;}; const  unique =, (arr)=祝辞{   ,,,var  arr =,(1, & # 39; 1 & # 39;,, & # 39; 1 & # 39;,, 1,, 2,,真的,,假的,,真的,,3,,2,,2,,1];   ,,,var  newArr =, [];   ,,,(let 小姐:=,0;,小姐:& lt;, arr.length;,我+ +){   ,,,,,,,,(var  j =, 0;, j  & lt;, newArr.length;, j + +){//大敌;注意var声明的j   ,,,,,,,,,,,如果(arr[我],===,newArr [j]),打破,,//,新数组已存在当前值   ,,,,,,,}   ,,,,,,,如果(j ===, newArr.length){//大敌;此时j和newArr长度相等,没有被中断   ,,,,,,,,,,,newArr.push (arr[我]);   ,,,,,,,}   ,,,}   ,,,return  newArr;}独特([1,& # 39;1 & # 39;,,& # 39;1 & # 39;,,1,,2,,真的,,假的,,真的,,3,,2,,2,,1]);,//,[1,大敌;& # 39;1 & # 39;,,2,,真的,,,,3,)

<强>核心点:

<李>

时间复杂度:<代码> O (n ^ 2)

<李>

上面的两种方法都是两次循环遍历,处理方式略有不同

<李>

上述实现方式确实不是最佳选择,但它胜在兼容性好啊~

<强>二,indexOf和包括

<编辑> 2.1 indexOf简化一层循环判断

<强>核心点:

<李>

如果需要返回原数组,则可以在<代码> indexOf 方法找到重复项时(不等于它首次出现的位置)时利用<代码>拼接> <李>

<代码> indexOf> 第一个索引> <李>

<代码> indexOf(避署,fromIndex)

<李>

避署:要查找的元素

<李>

fromIndex:查找元素的起始位置,默认为0,允许负数,2表示从倒数第二个元素开始查找

<李>

返回一个下标(数量)

<强>代码:

const  unique =, (arr),=祝辞,{   ,,,var  res =, [];   ,,,for  (let 小姐:=,0;,小姐:& lt;, arr.length;,我+ +){   ,,,,,,,如果(res.indexOf (arr[我]),===,1,){   ,,,,,,,,,,,res.push (arr[我]);   ,,,,,,,}   ,,,}   ,,,return  res;} <编辑> 2.2包括简化一层循环判断

<强>核心点:

<李>

具体的是要返回原数组还是新数组大家可以自行组合~

<李>

<代码>包括:用来判断一个数组是否包含一个指定的值,根据情况,如果包含则返回<代码> true>

<李>

<代码>包括(避署,fromIndex)

<李>

避署:要查找的元素

<李>

fromIndex:指定索引处开始查找。默认为0,如果为负的值,从末尾开始往前跳<代码> fromIndex> <李>

返回结果(bool)

<强>代码:

const  unique =, (arr),=祝辞,{   ,,,var  res =, [];   ,,,for  (let 小姐:=,0;,小姐:& lt;, arr.length;,我+ +){   ,,,,,,,如果(! res.includes (arr[我])){   ,,,,,,,,,,,res.push (arr[我]);   ,,,,,,,}   ,,,}   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

JavaScript怎么实现数组去重