簡體   English   中英

根據某個值獲取 object 密鑰對值

[英]Get object key pair value based on a value

我有以下 object:

const object1 = {
  language: 'somestring', abbr: 'abbr1',
  language: 'somestring2', abbr: 'abbr2',
  language: 'somestring3', abbr: 'abbr3',
  language: 'somestring4', abbr: 'abbr4',

};

我的代碼將始終將縮寫存儲在變量中,並且可以根據用戶選擇進行更改。 我想要實現的是如果我知道 abbr 則獲得相應的語言,即如果我知道 abbr 等於 abbr3 我想獲得 somestring3。

你不能這樣做,在 object 中具有相同的密鑰,覆蓋前一個

const object1 = {
    language: 'some_string1', abbr: 'abbr1',
    language: 'some_string2', abbr: 'abbr2',
    language: 'some_string3', abbr: 'abbr3',
    language: 'some_string4', abbr: 'abbr4',
  };

for(key in object1) {
    console.log(key, object1[key]);
}

我建議你使用嵌套對象

const object1 = {
  observation1: { language: "some_string1", abbr: "abbr1" },
  observation2: { language: "some_string2", abbr: "abbr2" },
  observation3: { language: "some_string3", abbr: "abbr3" },
  observation4: { language: "some_string4", abbr: "abbr4" },
};

for (named_observation in object1) {
  observation = object1[named_observation];
  for (key in observation) {
    console.log(named_observation, key, observation[key]);
  }
}

如果您有一個同時具有languageabbr的對象數組,則可以使用Array. 找到

 const arr = [ {language: 'somestring1', abbr: 'abbr1'}, {language: 'somestring2', abbr: 'abbr2'}, {language: 'somestring3', abbr: 'abbr3'}, {language: 'somestring4', abbr: 'abbr4'} ]; const knownAbbr = 'abbr3'; const correspondingLang = arr.find(obj => obj.abbr === knownAbbr)?.language; console.log(correspondingLang);

首先,我假設你有一個對象數組,因為 JS object 不能保存同一個鍵的多個屬性。 我建議使用對象數組。 在這種情況下,解決方案將是這樣的:

 const object1 = [ { language: 'somestring1', abbr: 'abbr1' }, { language: 'somestring2', abbr: 'abbr2' }, { language: 'somestring3', abbr: 'abbr3' }, { language: 'somestring4', abbr: 'abbr4' }, ] function getLangByAbbr (langList, abbr) { const lang = langList.find(lang => lang.abbr === abbr) return lang?.language } console.log(getLangByAbbr(object1, 'abbr2')) // 'somestring2' console.log(getLangByAbbr(object1, 'abbr4')) // 'somestring4' console.log(getLangByAbbr(object1, 'abbr9')) // undefined

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM