簡體   English   中英

如何按屬性在嵌套的 object 中搜索 object 並返回 object 與父對象的鍵和值?

[英]How to search object in nested object by property and return object with parent object's key and value?

我有一個嵌套的 object

let data = {
  address: "123 Street, state, country",
  childObject1: {
    foo: ["bar"],
    person: "Hailey"
  },
  relatedCustomers: {
    childObject: {
      foo: ["bar"],
      person: "Hailey2"
    }
  }
};

我想按屬性搜索帶有鍵和值的 object。

例如

搜索 - 我的 function

數據 - 嵌套 object

search("person", data)

我得到 object

{
  childObject: "Hailey2",
  childObject1: "Hailey"
}

我編寫了用人搜索所有值的代碼:

https://codesandbox.io/s/suspicious-pascal-qyvjw

但我無法獲得父 object 密鑰並獲得 object 結果:

{
  childObject: "Hailey2",
  childObject1: "Hailey"
}

請使用以下代碼查找父鍵:

let search = (needle, parentKey, haystack, found = []) => {
  Object.keys(haystack).forEach(key => {
    if (key === needle) {
      found.push({
        [key]: haystack[key],
        parentKey
      });
      return found;
    }
    if (typeof haystack[key] === "object") {
      search(needle, key, haystack[key], found);
    }
  });
  return found;
};

console.log(search("person", "data", data));
`;

我剛剛傳遞了 function 中的父密鑰,並在需要時保存了它。 我希望這就是你要找的。 謝謝。

暫無
暫無

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

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