簡體   English   中英

如何使用子值獲取父 object 值

[英]How to get the parent object value using child value

我對我有價值“b”,我想使用它來獲取項目“3648”我如何使用 JavaScript 來做到這一點?

{
  "someID": "16385421",
  "items": {
    "9836": {
      "id": "a"
    },
    "3648": {
      "id": "b"
    },
    "7738": {
      "id": "c"
    }
  }
}

o/p

"3648": {
  "id": "b"
}

在您發表評論后編輯:

getByItemId = ( val ) => {
  let result;
  for( let elem in data.items ){
    const check = data.items[ elem ];
    if( check.id == val ) result = check;
  }
  console.log( result )
  return result;
}
getByItemId( "b" )

您可以使用類似於以下內容的代碼來完成此操作。

首先,我們在 obj.items object 中獲取所有 object 鍵。 接下來我們遍歷它們。 在每一步,我們檢查所需的 ID 是否包含在由數組中當前鍵索引的子對象中。 如果找到,我們更新結果 object。 然后,如果密鑰不存在,我們返回一個空的 object,如果找到它,則返回類似以下內容: {key: '3648', id: 'b'}

 "use strict"; function byId(id){return document.getElementById(id)} function qs(sel,parent=document){return parent.querySelector(sel)} function qsa(sel,parent=document){return parent.querySelectorAll(sel)} window.addEventListener('load', onLoaded, false); var rawData = { "someID": "16385421", "items": { "9836": { "id": "a" }, "3648": { "id": "b" }, "7738": { "id": "c" } } }; function getIDs(data, searchItemId) { let keys = Object.keys(data.items); let result = {}; keys.forEach( keyFunc ); return result; function keyFunc(elem, index, collection) { if (data.items[elem].id == searchItemId) { result.key = elem; result.id = searchItemId; } } } function onLoaded(evt) { console.log( getIDs(rawData, "b") ); }

你可以做:

 const obj = { someID: '16385421', items: { 9836: { id: 'a', }, 3648: { id: 'b', }, 7738: { id: 'c', }, }, } const getParentObjectByValue = (obj, value) => { const key = Object.keys(obj.items).find((k) => obj.items[k].id === value) return key? { [key]: obj.items[key].id }: undefined } console.log(getParentObjectByValue(obj, 'b')) console.log(getParentObjectByValue(obj, 'zz'))

暫無
暫無

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

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