/*--数组扩展方法--*/
/*
*去除数组中的重复项
*/
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];
分享到:
相关推荐
求两个集合的补集、交集、差集、并集等等在实际应用中经常会使用到,下面与大家分享下具体的实现代码,感兴趣的朋友可以参考下,希望对大家有所帮助
这个新数组就是去重后的数组. // var res = arr4.indexOf(arr3[k]) // if (res === -1) { // arr4.push(arr3[k]) // } // } // console.log(arr4) // } // fn(nums1, nums2) // 方法二: var arr1 = ...
两个数组的交集(set去重后找交集)1
java jsonarray 踢重 去重操作
NULL 博文链接:https://jushi1988.iteye.com/blog/1166553
java 二个数组的交集,算法 java 二个数组的交集,算法
本文实例讲述了JavaScript获取两个数组交集的方法。分享给大家供大家参考。具体如下: 这里传入的数组必须是已经排过序的 /* finds the intersection of * two arrays in a simple fashion. * * PARAMS * a - ...
集合两个,分别通过数组存储,然后进行排序,输出两个集合的交集
自己编写的程序,实现两个有序数组求交集。例如a={1,2,3,4,5,6,7},b={1,3,5,8,9,11},则结果为{1,3,5}
查找数组中的重复元素,且时间复杂度为O(n)
用C#简单实现了对字符串数组求交集并集,定义类
找出两个已排序数组的并集和交集。 数组 || 编写一个程序,将数组循环旋转一个。 数组 || 找到最大和连续子数组 [V. 输入法] 数组 || 最小化高度之间的最大差异 [V.IMP] 数组 || 最低数量到达数组末尾的跳转次数 ...
利用java 语言,实现数组的并集交集补集,数组可键入。
利用指针来实现动态数组,求两个集合的交集和并集。(要求用动态数组来实现)依次分别输入数组A、B长度,并输入A,B中元素,即可得到交集并集
两个数组的交集给定两个数组,编写一个函数来计算它们的交集。示例 1:输出:[2]示例 2:输出:[9,4]def intersection(self, nums
2020高频面试算法整理 leetcode ,18个大类,80+...数组|1)乘积最大子序列|2)求众数|3)旋转数组|4)存在重复元素|5)移动零|6)打乱数组|7)两个数组的交集 II|8)递增的三元子序列|9)搜索二维矩阵 II|10)除自身以外数组的乘
数组求交集(C语言),入门小程序,适合C语言入门的小练习 数组求交集(C语言),入门小程序,适合C语言入门的小练习 数组求交集(C语言),入门小程序,适合C语言入门的小练习 数组求交集(C语言),入门小程序...
本文通过多种实现方式给大家介绍了JS计算两个数组的交集、差集、并集、补集 的相关知识,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下