2016-04-12 17 views
4

bir nesne vardır:Belirtilen anahtar dışındaki tüm öğeleri nesneden çıkarın.

"languages": { 
    "en":["au", "uk"], 
    "de":["de"], 
    .... 
} 

Ben Belirtilen anahtar ama her şeyi kaldırabilir nasıl, bu yüzden 'tr' belirtirseniz sadece "tr" içeren bir nesne istiyorum: [ "au", "uk"

+0

sadece çıkarılan anahtar ve değerleri içeren yeni bir tane oluşturun? Rastgele kriterlere göre nesne anahtarlarını reddedecek milyon JS kitaplığından birini kullanın. –

+0

Yani '' en'' için * dışındaki tüm tuşları kaldırmak istiyor musunuz? –

cevap

9

Basitçe, belirtilen alana sahip yeni bir nesne oluşturabilirsiniz;

var key = 'en'; 

var o = { 
    "languages": { 
     "en": ["au", "uk"], 
     "de": ["de"] 
    } 
} 

var res = {} 

res[key] = o.languages[key]; 
+1

Kimin oy kullandığını bilmiyorum, ama kabul edeceğim. – panthro

+3

Büyük olasılıkla aşağıya düşürülmüş bir kişi, çünkü bu, gerçek bir sorunun cevabı değil, bir geçici çözümdür. Bu alana giren insanlar, başlığa göre cevabı büyük olasılıkla arıyor, bu benzersiz vakanın çözümü değil. – Sandwich

+0

Bu ideal bir çözüm değildir. Niye ya? Çünkü orijinal dizide 'key' bulunmuyorsa, anahtar ve tanımsız bir değer ile yeni bir dizi girişi oluşturacağız. Bu istenmeyen bir durum olabilir. – pjb

6

deneyin delete istenmeyen özellikler,

var obj = { "languages": { "en":["au", "uk"],"de":["de"] }}; 

Object.keys(obj.languages).forEach(function(itm){ 
    if(itm != "en") delete object.languages[itm]; 
}); 
3

delete kullanarak basit bir döngü yapacak.

var key = 'en'; 
for (var k in obj.languages) { 
    if (obj.languages.hasOwnProperty(k) && k != key) { 
     delete obj.languages[k]; 
    } 
} 
(Rajaprabhu cevabı rafine) 'nasıl belirtilen tuşları dışındaki tüm tuşları kaldırırım' orijinal soru için
+0

Muhtemelen if ifadesinde doğru 'anahtar' var mı? – Simon

0

Genel çözüm:

validKeys = [ 'a', 'b', 'c' ]; 
userInput = { "a":1, "b":2, "c":3, "d":4, "e":5 } 

Object.keys(userInput).forEach((key) => validKeys.includes(key) || delete userInput[key]); 
İlgili konular