如何使用 id 查找名稱。表示迭代物件。創建一個函式const searchName =()=>{}
假設如果在函式中傳遞 3 所以我想顯示....用戶的名字是什么
const data = [{
"service": [
"BUSINESS",
"LEGAL",
"FINANCE",
"ADVERTISEMENT"
],
"service1": [
{ "id": 1, "name": "a" },
{ "id": 2, "name": "b" },
{ "id": 3, "name": "c" },
{ "id": 4, "name": "d" },
],
"service2": [
{ "id": 5, "name": "e" },
{ "id": 6, "name": "f" },
{ "id": 7, "name": "g" },
{ "id": 8, "name": "h" },
],
"service3": [
{ "id": 9, "name": "i" },
{ "id": 10, "name": "j" },
{ "id": 11, "name": "k" },
{ "id": 12, "name": "l" },
],
"service4": [
{ "id": 13, "name": "m" },
{ "id": 14, "name": "n" },
{ "id": 15, "name": "o" },
{ "id": 16, "name": "p" },
],
}
]
假設用戶通過3所以我想像這樣回傳 { "id": 3, "name": "c" }。我正在嘗試迭代它并通過 id 找到用戶的名稱,但我不理解這個迭代,所以我需要你的幫助。
uj5u.com熱心網友回復:
function searchName(id) {
let result = null;
for (const [key, value] of Object.entries(data)) {
if (key === "service") continue
result = value.filter(obj => {
return obj.id === id
})
if (result) break
}
return result ? result[0] : null
}
我遍歷鍵,我只是跳過“服務”一個,因為它不相關。然后,我過濾“服務N ”陣列,它將回傳一個物件陣列(如果找到則只有一個,如果沒有找到則為空陣列)。
如果找到,我們停止迭代。
然后我們回傳第一個(也是邏輯上唯一的元素)或 null 如果沒有找到
uj5u.com熱心網友回復:
您可以使用flat和的組合find通過 id 獲取用戶
function searchName(id) {
return data
.flatMap((item) => Object.values(item))
.flat()
.find((user) => user.id === id);
}
const result = searchName(3); // { id: 3, name: 'c' } | undefined
uj5u.com熱心網友回復:
檢查此代碼...
<!-- begin snippet: js hide: false console: true babel: false -->
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/450906.html
標籤:javascript 节点.js 数组 目的 嵌套对象
