-1

我有一个列表和一个 DOM 对象,我需要比较并获得不同的值

例子:

lista1 = ["type", "name","visible"] 
lista2 = Object {type: "button", name: "button", class: "buttonBlack", visible: "true", backgroundimage: "null"}

lista2 = Object.keys(list2);

我尝试:

for(var i = 0; i<lista1.length;i++)

    $.each(lista2,function(key,val){
        if(lista[i] == val){
         list2.remove(val);
        }      
    });
};

我想得到它们之间不相等的项目

我怎样才能做到这一点?

预期收益:

["class","backgroundimage"]
4

3 回答 3

2
list1 = ["type", "name","visible"] 
list2 = {type: "button", name: "button", class: "buttonBlack", visible: "true", backgroundimage: "null"}
result = []

$.each(list2, function(k,v){
  if ($.inArray(k, list1) === -1) {
    result.push(k)
  }
})

result
>> ["class", "backgroundimage"]
于 2013-05-31T19:34:04.750 回答
1
var list1 = ["type", "name", "class", "visible", "backgroundimage", "disabled", "value"];
var list2 = {type: "button", name: "button", class: "buttonBlack", visible: "true", backgroundimage: "null"};

list2 = Object.keys(list2);

function arr_diff(a1, a2)
{
  var a=[], diff=[];
  for(var i=0;i<a1.length;i++)
    a[a1[i]]=true;
  for(var i=0;i<a2.length;i++)
    if(a[a2[i]]) delete a[a2[i]];
    else a[a2[i]]=true;
  for(var k in a)
    diff.push(k);
  return diff;
}

console.log(arr_diff(list1, list2));

结果是

["disabled", "value"] 

**基于
获取对象键数组的
JavaScript 数组差异

演示

于 2013-05-31T19:24:40.903 回答
0
lista1 = ["type", "name","visible"] 
lista2 = Object {type: "button", name: "button", class: "buttonBlack", visible: "true", backgroundimage: "null"}

result = [];

for (var prop in lista2) {
   if (lista2.hasOwnProperty(prop) && lista1.indexOf(prop) < 0) {
       result.push(prop);
   }
}

该数组result将包含不在您的数组中的对象的所有属性。

于 2013-05-31T19:32:03.823 回答