`
alfred_long
  • 浏览: 567284 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

几个实用的Javascript数组实用的原型扩展方法(唯一|交集|合并|去重)

 
阅读更多

 

/*--数组扩展方法--*/
/*
*去除数组中的重复项
*/
Array.prototype.unique = function()
{
	 var a = []; var l = this.length; 
	 for (var i = 0; i < l; i++) 
	 { 
	 	for (var j = i + 1; j < l; j++)
	  	{ 
	  		if (this[i] === this[j]) j = ++i; 
	  	} 
		a.push(this[i]); 
	} 
	return a; 
};   
// Usage : var uniqueA = [1,2,3,3,5,5,3,7]; var uniqueResult = uniqueA.unique(); // uniqueResult = [1, 2, 5, 3, 7];

/*
*获取数组的交集需要有unique方法支持
*/
Array.prototype.intersect = function()
{
	if (!arguments.length) return []; 
	var a1 = this; var a = a2 = null; 
	var n = 0; 
	while (n < arguments.length) 
	{ 
		a = []; a2 = arguments[n]; var l = a1.length; var l2 = a2.length; 
		for (var i = 0; i < l; i++) 
		{ 
			for (var j = 0; j < l2; j++) 
			{ 
				if (a1[i] === a2[j]) a.push(a1[i]); 
			} 
		} 
		a1 = a; n++; 
	} 
	return a.unique(); 
};
// Usage : var intersectA = [1,2,3]; var intersectB = [2,3,4]; var intersectC = [3,4,5]; var intersectResult = intersectA.intersect(intersectB,intersectC); // intersectResult = [3];

/*
*判断是否为数组
*/
function isArray(a){
	return a.constructor === Array ? true : false; 
}
// Usage : var isArrayA = [3]; var isArrayB = 3; var isArrayResultA = isArray(isArrayA); //true var isArrayResultB = isArray(isArrayB); //false

/*
*获取数组中不相同的元素
*/
Array.prototype.diff = function(){
	var a1 = this; 
	var a = a2 = null; 
	var n = 0; 
	while (n < arguments.length) 
	{ 
		a = []; a2 = arguments[n]; 
		var l = a1.length; 
		var l2 = a2.length; 
		var diff = true; 
		for (var i = 0; i < l; i++) 
		{ 
			for (var j = 0; j < l2; j++) 
			{ 
				if (a1[i] === a2[j]) 
				{ 
					diff = false; break; 
				} 
			} 
			diff ? a.push(a1[i]) : diff = true; 
		} 
		a1 = a; n++; 
	} 
	return a.unique(); 
};
// Usage : var diffA = [1,2,3]; var diffB = [2,3,4]; var diffResult = diffA.diff(diffB); // diff = [1];
分享到:
评论

相关推荐

    js取两个数组的交集|差集|并集|补集|去重示例代码|angluo-javascript-98592.pdf

    本篇将详细介绍如何使用JavaScript来获取两个数组的交集、差集、并集和补集,以及如何去除数组中的重复元素。这些操作在实际编程中非常实用,可以帮助我们有效地处理和分析数据。 首先,我们需要一个辅助方法`each`...

    JavaScript获取多个数组的交集

    3. **使用reduce和filter方法**:我们还可以结合reduce和filter方法来找到交集,先用reduce将所有数组合并成一个大的数组,然后再使用filter方法去除不在所有数组中的元素。 ```javascript function intersect...

    求两个数组的交集,配合去重方法使用.html

    这个新数组就是去重后的数组. // var res = arr4.indexOf(arr3[k]) // if (res === -1) { // arr4.push(arr3[k]) // } // } // console.log(arr4) // } // fn(nums1, nums2) // 方法二: var arr1 = ...

    两个数组的交集(set去重后找交集)1

    两个数组的交集(set去重后找交集)1

    java jsonarray 踢重 去重操作

    在Java中处理JSON数据时,经常需要对JSON数组进行各种操作,其中去重是一个常见的需求。本文将详细介绍如何使用Java对`JSONArray`进行去重操作,并深入探讨背后的原理和技术细节。 ### JSON与Java JSON...

    初等数组求交集

    - 输出:程序将输出两个数组,以及它们的交集元素(包括重复元素和去重后的结果)。 ##### 2.3 逻辑流程 1. **读取输入**:使用`get`函数从用户那里读取两个数组的数据。 2. **输出原始数组**: - 使用`push1`...

    两个有序数组求交集,C++

    ### 两个有序数组求交集(C++) 在计算机科学领域,处理数组...通过以上分析可以看出,有序数组求交集是一个简单但实用的功能,在实际开发中有着广泛的应用前景。通过对算法细节的理解和优化,可以使程序更加高效稳定。

    求两个数组的交集

    数组的交集问题是一个常见的算法题目,尤其是在处理大规模数据时,效率是至关重要的。本篇将详细讲解如何找到两个数组的交集,并着重讨论如何在时间复杂度为O(n)的情况下实现这一操作。 首先,我们需要理解“交集”...

    java 二个数组的交集,算法

    本文将深入探讨如何使用不同的方法来找出两个数组的交集,并提供相关的算法实现。 ### 1. 使用HashSet Java中的`HashSet`是一个不允许重复元素的集合,它没有重复元素且不保证集合中元素的顺序。我们可以利用`...

    JavaScript获取两个数组交集的方法

    在JavaScript编程中,处理数组数据时常常需要进行各种操作,其中获取两个数组的交集是一项基本且实用的操作。本文将详细介绍如何使用JavaScript来获取两个数组的交集,并提供相应的代码实现。 首先,我们来明确什么...

    两个数组交集(双指针)1

    这个问题可以通过双指针法来解决,这是一种常见的处理数组问题的方法,尤其适用于处理有序数组或部分有序数组的情况。以下是详细的解题过程: 首先,我们需要对输入的两个数组`nums1`和`nums2`进行排序。这里使用了...

    JS实现的集合去重,交集,并集,差集功能示例

    `array_union` 函数计算两个数组的并集,它简单地将a和b数组合并(concat操作),然后调用`array_remove_repeat` 函数去重,得到不重复的所有元素。 4. **差集**: `array_difference` 函数用于计算两个数组的...

    C#对比数组之间交集,差集,并集

    在本篇内容中,我们将深入探讨如何在C#中实现两个字符串数组之间的交集、并集与差集操作。此示例代码展示了如何利用LINQ(Language Integrated Query)方法来处理数组之间的这些集合运算。 ### 一、背景介绍 #### ...

    两个数组的交集(python+set)1

    解释:两个数组的交集是[2],因为2是唯一同时存在于两个数组中的元素。 示例2: 输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4] 输出:[9,4] 解释:9和4是同时存在于nums1和nums2中的元素,因此交集是[9,4]。 此...

    ArrayExtensions:数组原型的扩展

    `ArrayExtensions`项目旨在通过扩展JavaScript原生的数组原型,增加新的方法,从而丰富数组的功能性。这个项目利用npm(Node Package Manager)进行管理和测试,采用mocha作为测试框架,chai作为断言库,确保新增的...

    C#字符串数组求交集并集

    用C#简单实现了对字符串数组求交集并集,定义类

    leetcode中国-DSA:该存储库包含GeeksforGeeks数据结构和算法解决方案

    找出两个已排序数组的并集和交集。 数组 || 编写一个程序,将数组循环旋转一个。 数组 || 找到最大和连续子数组 [V. 输入法] 数组 || 最小化高度之间的最大差异 [V.IMP] 数组 || 最低数量到达数组末尾的跳转次数 ...

    java 求数组并集交集补集

    利用java 语言,实现数组的并集交集补集,数组可键入。

Global site tag (gtag.js) - Google Analytics