-1

私は1つのリストと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

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"] 

** Get array of object's keys 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 に答える