如何在javascript中比较两个对象数组
我在javascript中获取了两个对象数组如何在javascript中比较两个对象数组,javascript,Javascript,我在javascript中获取了两个对象数组 arr1 = [{"name":"prudhvi", "age":"12"}, {"name":"pavan", "age":"13"}, {"name":"prudhvi", "age":"15"}]; arr2 = [{"name":"Sai", "age":"12"}, {"name":"Shiva", "age":"13"}, {"name":"prudhvi", "age":
arr1 = [{"name":"prudhvi", "age":"12"},
{"name":"pavan", "age":"13"},
{"name":"prudhvi", "age":"15"}];
arr2 = [{"name":"Sai", "age":"12"},
{"name":"Shiva", "age":"13"},
{"name":"prudhvi", "age":"12"}];
arr2
中删除该对象arr1
中有唯一的项目。如果有任何重复的对象,我想将其从此数组中删除您可以为此创建一个helper函数,因为数组包含新的对象声明(这意味着它们拥有相同的值,但不会引用相同的对象,因为它们是两个独立的实体)。您应该迭代数组,查看它是否包含预期值,如果包含,则删除它。大概是这样的:
function removeDuplicateName( aArray, aName )
{
var i = aArray.length; // get Array length
while ( i-- )
{
var entry = aArray[ i ]; // get object at position i in array
if ( entry.name == aName ) { // object matches name
aArray.splice( i, 1 ); // remove object at array position
break; // if name is expected to unique, break operation
}
}
}
您可以使用帮助功能,如
function compareObjs( obj1, obj2, keys ){
for(var i = 0; i < keys.length; i++){
if( obj1[keys[i]] !== obj2[keys[i]] ) return false;
}
return !!keys.length;
}
功能比较BJS(obj1、obj2、键){
对于(变量i=0;i
此函数将在键中迭代,如果所有键都相等,则返回。。。
请参阅JSFIDLE中的->
如果diff为null,则您拥有相同的数组,否则它将包含差异b/w两个数组搜索您的确切标题会带来很多有用的信息:@jordan,JavaScript,而不是Java。@Andy这是JavaScript,不是Javaissue@PaulRad,我知道。我添加的链接有什么问题?代码中有错误
if(i.name==aName){
应该是if(entry.name==aName){
。
var diff = $(array1).not(array2).get();