[英]Access nested JSON object without specifying key in JavaScript
我決定通過嵌套對象/數組來了解更多關於 JavaScript 循環和映射函數的信息。 現在我偶然發現了一個與此有些相似但要復雜得多的問題。
這是我的 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 與此類似:
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.