Javascript 获取两个数组交集(重复)的项列表,支持List<object>

(function( window ){

var Utils = {

//TODO 判断两个JSON是否相等
equals : function( param ,param2){
return JSON.stringify(param) === JSON.stringify(param2);
},

//TODO 获取当前项在数组出现的个数
getCountByItem : function( objects,item){
var count = 0;
for(var i = 0;i < objects.length;i++){
if( this.equals(objects[i] , item ) ){
count++;
}
}
return count;
},
//TODO 获取两个数组交集的项列表,支持List<object> 代码格式:[{}]
getRepeatItems : function( objects,objects2 ){
var tempObjects = objects.concat(objects2);
var repeatItems = [];
for(var i = 0;i < tempObjects.length;i++){
var itemCount = this.getCountByItem( tempObjects,tempObjects[i] );
if( itemCount > 1 ){
repeatItems.push( tempObjects[i] );
tempObjects[i] = null;
}
}
return repeatItems;
}

};

window.Utils = Utils;

})( window );

时间: 2024-12-15 00:13:22

Javascript 获取两个数组交集(重复)的项列表,支持List<object>的相关文章

获取两个数组相同元素,不同元素,及相同元素不同元素新数组

废话不多说直接上代码! /** * 获取两个数组相同元素 * @param a * @param b * @return */ public static <T> Set<T> getIds(T[] a, T[] b){ Set<T> same = new HashSet<T>(); //用来存放两个数组中相同的元素 Set<T> temp = new HashSet<T>(); //用来存放数组a中的元素 for (int i =

javascript 常见数组操作( 1、数组整体元素修改 2、 数组筛选 3、jquery 元素转数组 4、获取两个数组中相同部分或者不同部分 5、数组去重并倒序排序 6、数组排序 7、数组截取slice 8、数组插入、删除splice(需明确位置) 9、数组遍历 10、jQuery根据元素值删除数组元素的方)

主要内容: 1.数组整体元素修改 2. 数组筛选 3.jquery 元素转数组 4.获取两个数组中相同部分或者不同部分 5.数组去重并倒序排序 6.数组排序 7.数组截取slice 8.数组插入.删除splice(需明确位置) 9.数组遍历 10.jQuery根据元素值删除数组元素的方法 数组常见操作包含了 增.删.查.改.插入.交集.并集 1.数组整体元素修改 //map,给数组每个元素加1 输出[1,2,3] $.map([0,1,2],function(n){ return n+1; })

回顾面试题:计算两个数组交集

*:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important; } /* BLOCKS =============================================================================*/ p, blockquote, ul, ol, dl, table, pre { margin: 15px 0; } /* HEAD

快速求两个数组交集算法

快速求出两个数组的交集的算法,如果用循环遍历的方法,其时间复杂度为O(N^N),在面试中一般不考虑这种方法. 这里提供一种快速算法,算法实现步骤如下: 1. 找到arr1的最大数max,创建一个max+1大小的数组result. 2. 以arr1中的值作为result的下标,该索引处的值+1. 3. 在result数组中遍历arr2中的值为下标处的值,如果该索引值不为0,则代表该值是两者的交集,保留. 程序实现如下: /** * 求两个数组的交集 * @param arr1 * @param a

Javascript比较两个数组是否相等

javascript是不能直接比较两个数组是否相等的.例如: var a = [1,2,3];var b = [1,2,3]; alert(a == b); // false 结果是 false. 证明两个数组不能直接比较相等. 解决方法一: 先排序,再利用toString方法,比较.例如: var a = [1,2,3];var b = [1,2,3];alert(a.sort().toString() == b.sort().toString()); 结果为true 解决方法二: 直接toS

笔试算法题(28):删除乱序链表中的重复项 &amp; 找出已经排好序的两个数组中的相同项

出题:给定一个乱序链表,节点值为ASCII字符,但是其中有重复项,要求去除重复项并保证不改变剩余项的原有顺序: 分析:创建一个256(2^8)大小的bool数组,初始化为false,顺序读取链表,将字母对应位置为false的重新标记为true并保留节点,将字母对 应位置为true的保持并删除节点:时间复杂度为O(N),空间复杂度为常量.注意删除节点和不删除节点的情况下,pre和cur的移动操作不相同: 解题: 1 struct Node { 2 char value; 3 Node* next;

javascript合并两个数组

在开发的过程中,我们很多时候会遇到需要将两个数组合并成一个数组的情况出现. var arr1 = [1, 2, 3]; var arr2 = [4, 5, 6]; // 将arr1和arr2合并成为[1, 2, 3, 4, 5, 6] 这里总结一下在JavaScript中合并两个数组的方法. for循环数组 这个方式是最简单的,也是最容易实现的. var arr3 = []; // 遍历arr1 for (var i = 0; i < arr1.length; i++) { arr3.push(

asp下去除数组中重复的项的方法

<% Function MoveR(Rstr) Dim i,SpStr SpStr = Split(Rstr,",") For i = 0 To Ubound(Spstr) If I = 0 then MoveR = MoveR & SpStr(i) & "," Else If instr(MoveR,SpStr(i))=0 and i=Ubound(Spstr) Then MoveR = MoveR & SpStr(i) Elseif

JavaScript获取两个数之间的任意随机数

通过JavaScript的Math.random()方法可以获取0到1之间的任意随机数,那如何获取任意给定的两个数之间的随机数呢?如获取2和5之间的随机数,5和10之间的随机数等. 由于Math.random()函数总是返回0到1之间的一个随机数,我们可以把0看成最小数,把1看成最大数.假设最小数是max,最大数是min,通过下面的公式我们便可得出任意两个数之间的随机数: Math.random() * (max - min) + min 如果使用Math.floor()进行向下舍入操作,则需要