簡體   English   中英

訪問嵌套的 JSON object 而不在 JavaScript 中指定鍵

[英]Access nested JSON object without specifying key in JavaScript

我決定通過嵌套對象/數組來了解更多關於 JavaScript 循環和映射函數的信息。 現在我偶然發現了一個與此有些相似但要復雜得多的問題。

在不知道鍵名的情況下訪問 JSON object 的元素

這是我的 JSON:

"employees": {
    "Gill Bates": {
        "position": "Software Engineer",
        "office": "Tokyo, Japan"
    },
    "Jebron Lames": {
        "position": "Full-stack Developer",
        "office": "Manila, Philippines"
    }
}

和我的accessJson function 這是嵌套 JSON 對象的著名解決方案:

 function accessJson(obj) { const result = []; for (const prop in obj) { const value = obj[prop]; if (typeof value === 'object') { result.push(toArray(value)); } else { result.push(value); } } return result; }

該代碼在訪問 JSON object 時運行良好。 但問題是我得到的回報是這樣的:

在此處輸入圖像描述

我需要在其中再次編寫另一個 function 以修剪和組合這些字符,以獲得每個員工 position。 有沒有辦法讓每個員工 position 不指定他們的名字? 像這樣的單行變量聲明(不工作):

 let position = Object.keys(employees)[0].position;

我可以將它插入到我的循環中,這樣我就可以刪除我現有的accessJson function 並減少我的代碼。

編輯:

請不要將我的問題標記為重復的問題。 我想我已經在上面提到了我的代碼很好並且可以正常工作。 我想得到反饋的是,我們能否將我的代碼優化為一行聲明,這樣我們就可以擺脫accessJson function 並避免創建另一個 function 來修剪和組合這些字符以獲取每個員工

我的問題和accessJson function 與此類似:

如何訪問和處理嵌套對象 arrays 或 JSON?

 const data = { "employees": { "Gill Bates": { "position": "Software Engineer", "office": "Tokyo, Japan" }, "Jebron Lames": { "position": "Full-stack Developer", "office": "Manila, Philippines" } } }; const { employees } = data; const extract = (p) => Object.keys(employees).map(name => employees[name][p]); console.log('get every employees position', extract('position')); console.log('get every employees office', extract('office'));

暫無
暫無

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

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