说到数组去重,以前只想到 双重循环来遍历去重 还有利用对象属性无重复性来去重
后来经某位高人的提示 得到下面这个方法
先排序 排序后再比较第i和第i+i个是否相等 相等则删除 否则则继续 算法确实优化了很多
1.先排序
function ovArr(arr){
if(arr instanceof Array){
var newArr = arr.sort();
for(var i=0;i<newArr.length;i++){ //注意长度每次都要重新算
if(newArr[i]===newArr[i+1]){ //注意是 ===
newArr.splice(i+1,1);
i--;
}
}
return newArr;
}else{
return arr;
}
}
2.双重循环
a. 删掉元素
function ovArr(arr){
if(arr instanceof Array){
for(var i=0;i<arr.length-1;i++){
for(var j=i+1;j<arr.length;j++){
if(arr[i]===arr[j]){arr.splice(j,1);j--;}
}
}
}
return arr;
}
b.组成新的
function ovArr(arr){
if(arr instanceof Array){
var newArr=[];
for(var i=0;i<arr.length;i++){ // 注意:i<arr.length 因为后面push的是arr[i],最后一项也要
var tag=true;
for(var j=i+1;j<arr.length;j++){
if(arr[i]===arr[j]){tag=false;break;}
}
if(tag){
newArr.push(arr[i]); //
}
}
return newArr;
}
return arr;
}
效率没删除元素的好
3.对象属性无重复性:
function ovArr(arr){
if(arr instanceof Array){
var obj={},newArr = [];
for(var i=0;i<arr.length;i++){
if(obj[arr[i]+(typeof arr[i])]){ //用typeof 区分类型数字和字符串 比如元素为1和'1'
continue;
}else{
newArr.push(arr[i]);
obj[arr[i]+(typeof arr[i])] = true;
}
}
return newArr;
}
return arr;
}
分享到:
相关推荐
JavaScript数组去重功能的设计与实现 本文主要讨论了JavaScript数组去重功能的设计与实现,以解决在数据处理过程中产生大量重复数据的问题。文章首先介绍了JavaScript的基本概念,包括ECMAScript、DOM、BOM三个部分...
对于JavaScript数组去重,有多种简单的方法。首先是使用ES6的Set对象,Set类似于数组,但不允许重复值: ```javascript let uniqueArray = [...new Set(array)]; ``` 这段代码首先创建一个Set,然后使用扩展运算符`...
JavaScript数组去重是编程中常见的需求,特别是在处理数据集合时,确保数据的唯一性非常重要。以下将详细讲解几种常见的JavaScript数组去重方法。 1. **新建数组法**: 这是最基础的方法,通过创建一个新的空数组...
JavaScript数组去重是编程面试中常见的算法问题,主要目的是消除数组中的重复元素,确保每个元素在结果数组中只出现一次。本文将总结四种常见的JavaScript数组去重方法,并分析它们的优缺点。 首先,我们来看**循环...
### JavaScript数组去重技术深入研究 #### 前言 数组去重是在处理大量数据时经常遇到的问题之一。为了提高程序效率以及代码的可读性和维护性,掌握多种不同的数组去重方法至关重要。 #### 最初的方法:双层循环 ...
JavaScript Array数组去重源码下载
本文实例总结了JavaScript数组去重的方法。分享给大家供大家参考,具体如下: 数组去重,一般都是在面试的时候才会碰到,一般是要求手写数组去重方法的代码。如果是被提问到,数组去重的方法有哪些?你能答出其中的...
javascript 实现数组去重的多种方法_ javascript 实现数组去重的多种方法是指使用javascript 语言实现数组去重的多种方法。数组去重是指将数组中重复的元素删除,得到一个没有重复元素的新数组。下面将介绍多种实现...
本文将从几个不同的角度介绍JavaScript数组去重的方法,旨在帮助读者掌握数组去重的技巧。 首先,数组去重的核心思想可以分为两大类。一是通过遍历数组,比较数组内部元素,然后将唯一的元素添加到新的数组中;二是...
通过对数组去重以及统计重复元素出现次数的实现,能够帮助开发者更好地了解JavaScript数组操作。本文提供的两种方法各有优劣,方法一虽然较为繁琐,但兼容性好,适用于低版本的JavaScript环境;方法二简洁高效,但需...
本文将探讨三种不同的JavaScript数组去重方法,并对它们的性能进行测试和比较。 首先,我们来看第一种方法,这种方法是通过创建一个对象来存储数组元素作为键,利用JavaScript对象的特性,相同的键值不会被覆盖,...
本文将介绍6种不同的方法来实现JavaScript数组去重,这些方法适用于不同的场景和需求。 1. **基础方法(O(n^2)**: 这是最直观的方法,通过两层循环检查元素是否存在。首先,创建一个新的空数组`res`,然后遍历原...
本文将详细介绍几种常见的JavaScript数组去重方法,并通过示例代码展示其实现过程。 #### 二、双重循环去重 ##### 2.1 方法概述 双重循环去重是最直观的一种方法。它的基本思想是使用两个嵌套循环来检查数组中的...
JavaScript数组去重是前端开发中常见的问题之一,尤其是在处理数据时,为了保证数据的唯一性,常常需要去除数组中的重复元素。本文将针对JavaScript数组去重算法进行详细讲解,并通过实例分析去重操作涉及的读写、...
JavaScript数组去重是前端面试酷爱的问题,问题简单而又能看出程序员对计算机程序执行过程的理解如何。数组去重的方法有很多,到底哪种是最理想的我不清楚。于是我测试了下数组去重的效率。测试二十万个数据,随着...
本文将详细解析两种JavaScript数组去重的方法,并提供一些额外的在线工具供参考。 ### 方法一:使用`indexOf()`方法 这种方法基于`indexOf()`函数来检测数组中的元素是否已经存在。`indexOf()`返回指定元素在数组...
JavaScript数组去重是一个常见的编程问题,特别是在处理数据集合时。以下将详细介绍五种常见的JavaScript数组去重方法: 1. **删除后面重复的**: ```javascript function ov(arr) { for (var i = 0; i ; i++) {...