引用Ext中实现方法:
unique: function( array ) {
var ret = [], done = {};
try {
for ( var i = 0, length = array.length; i < length; i++ ) {
var id = jQuery.data( array[ i ] );
if ( !done[ id ] ) {
done[ id ] = true;
ret.push( array[ i ] );
}
}
} catch( e ) {
ret = array;
}
return ret;
}
实现中需要注意的就是对于存在的如何去标示,ext采用的是jQuery.data(array[ i ])方法生成一个hash中key,循环中检测是否已经存在同样的key,如果存在那么在新数组中就不在重复。以此达到去掉重复数据。
网上常用方式是2个重复for循环,但是存在效率问题。
Array.prototype.unquie=function(){
var newArray=new Array();
var len=this.length;
for (var i=0;i<len ;i++){
for(var j=i+1;j<len;j++){
if(this[i]===this[j]){
j=++i;
}
}
newArray.push(this[i]);
}
return newArray;
}
另外一种比较优化方法:
Array.prototype.unquie=function(){
//需要考虑数组内容中包含boolean,string类型数据。
var newArray=[] , provisionalTable = {};
for (var i = 0, item; (item= this[i]) != null; i++) {
if (!provisionalTable[item]) {
newArray.push(item);
provisionalTable[item] = true;
}
}
return newArray;
}
运行测试时间:
console.time('t');
var array = [1,false,'',true,true,4,4,4,4,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4];
console.info(array.unique())
console.timeEnd('t')
分享到:
相关推荐
通过上述三种方法的介绍和比较,我们可以了解到JavaScript数组去重的基本实现思路和各自的方法优缺点。在实际的项目开发中,可以根据数组的具体情况选择合适的去重方法,以达到性能最优和代码简洁的平衡。同时,通过...
在JavaScript中,处理数组去重是一个常见的编程任务,...总的来说,JavaScript提供多种去除数组重复值的方法,每种方法都有其适用场景。开发者需要根据实际情况,结合性能、可读性和数据类型等因素,选择最合适的方法。
JavaScript数组的`filter()`方法可以创建一个新的数组,其中包含通过所提供函数实现的测试的所有元素。我们可以利用这个特性来过滤掉重复的元素。 ```javascript let arr = [1, 2, 2, 3, 4, 4, 5]; let ...
重复元素在数组中可能会导致数据冗余,降低程序效率,因此移除数组中的重复元素成为了JavaScript编程中的一个重要技巧。 JavaScript提供了多种方法来移除数组中的重复元素,常见的方法包括使用ES6的新特性如`Set`...
本文将介绍几种有效的方法来去除数组中的重复值,这些方法各有优劣,适用于不同的场景。 1. **删除后面重复的(ov1)**: 这种方法通过双重循环实现,外层循环遍历数组元素,内层循环从当前元素的下一个开始,如果...
在JavaScript中删除二维数组中重复的元素 在JavaScript中,删除二维数组中重复的元素是一种常见的需求。二维数组是一种复杂的数据结构,它由多个一维数组组成,每个一维数组可以包含不同的元素。在实际应用中,我们...
本文实例分析了JavaScript去掉数组重复项的方法。分享给大家供大家参考,具体如下: 利用JavaScript的object的特性,我们可以非常容易的实现将一个数组的重复项去掉。 object的特性是:key一定是唯一的。 把数组重复...
通过对数组去重以及统计重复元素出现次数的实现,能够帮助开发者更好地了解JavaScript数组操作。本文提供的两种方法各有优劣,方法一虽然较为繁琐,但兼容性好,适用于低版本的JavaScript环境;方法二简洁高效,但需...
虽然上述方法可以有效地去除数组中的重复元素,但在处理大规模数据时可能会遇到性能瓶颈。因为每次插入元素都需要遍历整个结果数组来检查是否存在,这种操作的时间复杂度为O(n^2),其中n为数组长度。对于大型数组,...
在JavaScript中,处理数组时,有时我们需要去除其中的重复值以得到一个只包含唯一元素的新数组。本篇文章将深入探讨几种不同的方法来实现这一目标,包括基础方法和更高效的算法。 首先,我们来看标题和描述中提及的...
本文将详细解析几种不同的JavaScript数组去重方法,并探讨它们的优缺点。 首先,介绍的是一种基础的去重方法,即创建一个新的结果数组,然后遍历原数组,通过比较判断是否已存在于结果数组中。这种做法可以称为...
在JavaScript编程中,处理数组是常见的任务之一,而去除数组中的重复元素则是一项基本操作。数组去重可以提升数据处理的准确性和效率,尤其是在处理大量数据时。这里我们将探讨两种不同的JavaScript方法来实现这个...
在JavaScript中,合并两个数组并去除重复项是一个常见的任务,特别是在处理数据集合或者组合不同来源的数据时。这里我们将深入探讨几种不同的方法来实现这个功能。 首先,我们可以使用`concat()`方法来合并两个数组...
此外,本文还提到了一些扩展阅读资源,包括《JavaScript数组操作技巧总结》、《JavaScript排序算法总结》、《JavaScript数学运算用法总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结...
然而,在实际应用中,我们有时需要处理包含重复元素的数组,这时就需要去除重复的元素以达到预期的效果。以下将详细介绍三种JavaScript中去除数组重复元素的方法。 ### 方法一:基于对象哈希 这种方法的核心思想是...
实际当中经常会遇到数组重复值的问题,这是最为基础的方法,利用indexOf或for循环去除数组中重复值
同时,理解这些基本操作也有助于我们更好地掌握JavaScript数组处理的技巧。在阅读类似《JavaScript高级程序设计》这样的书籍,或者在iteye这样的技术社区中,你可以找到更多关于数组操作和算法优化的知识,不断提升...