[英]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.