2016-10-28 3 views
1

Ich habe ein Array:wenn ein Array-Eintrag entspricht eine Objekteigenschaft

arr=[ 
     "EMPRESA", 
     "CD_DIRECAO", 
     "DT_INI_DIRECAO" 
    ] 

Ich habe ein Objekt:

primary = { 
      "EMPRESA": {"type": "varchar"}, 
      "CD_DIRECAO": {"type": "varchar"}, 
      "DT_INI_DIRECAO": {"type": "date"}, 
      "CD_DEPT": {"type": "varchar"}, 
      "DT_INI_DEPT": {"type": "date"}, 
      "ANO": {"type": "number"}, 
      "MES": {"type": "number"}, 
      "TP_CUSTO": {"type": "varchar"}, 
      } 

ich überprüfen müssen, wenn mindestens ein Element von arr in primären existiert . Verwerten Sie Ihre Hilfe.

+0

lodash. '_.intersection (arr, _.keys (primär)) length' – georg

Antwort

2

Sie mit Array#some laufen könnte und prüfen, ob der Schlüssel vorhanden sind.

var arr = ["EMPRESA", "CD_DIRECAO", "DT_INI_DIRECAO"], 
 
    primary = { EMPRESA: { type: "varchar"}, CD_DIRECAO: { type: "varchar"}, DT_INI_DIRECAO: { type: "date"}, CD_DEPT: { type : "varchar"}, DT_INI_DEPT: { type: "date"}, ANO: { type: "number"}, MES: { type: "number"}, TP_CUSTO: { type: "varchar"}}, 
 
    contain = arr.some(function (k) { 
 
     return k in primary; 
 
    }); 
 

 
console.log(contain);

1

Sie können die Schlüssel des Objekts durchlaufen und überprüfen, ob Ausgänge indexOf mit:

for (property in primary){ 
     if (arr.indexOf(property) !== -1) 
     console.log("Exists"); 
}; 

Mit Object.keys:

Object.keys(primary, function(key){ 
    if (arr.indexOf(key) !== -1) 
     console.log("Exists"); 
}); 
1
for (var i = 0; i< arr.length; i++){ 
    if (primary[arr[i]]){ 
     //exists 
    } 
} 
1

Eine Antwort mit Array.prototype.some:

var arr=["EMPRESA","CD_DIRECAO","DT_INI_DIRECAO"]; 
 
var primary={EMPRESA:{type:"varchar"},CD_DIRECAO:{type:"varchar"},DT_INI_DIRECAO:{type:"date"},CD_DEPT:{type:"varchar"},DT_INI_DEPT:{type:"date"},ANO:{type:"number"},MES:{type:"number"},TP_CUSTO:{type:"varchar"}}; 
 

 
var result = arr.some(function(element){ 
 
    return primary[element]; 
 
}); 
 

 
console.log(result);

Verwandte Themen