我有一個要過濾的物件,它應該回傳一個具有特定 ID 的鍵。Id 是唯一的。需要一個有效的邏輯來回傳這個預期的輸出。要過濾的物件。
{
"a":[{"id":"1123","value":"test1"}],
"b":[{"id":"1124","value":"test2"}],
"c":[{"id":"1125","value":"test3"}]
}
輸入 ID:“1124”
Expected Output : 'b'
uj5u.com熱心網友回復:
let data = {
"a":[{"id":"1123","value":"test1"}],
"b":[{"id":"1124","value":"test2"}],
"c":[{"id":"1125","value":"test3"}]
};
let input = "1124";
let result = Object.entries(data).filter(([k,v]) => v[0].id === input)[0][0];
console.log(result);
uj5u.com熱心網友回復:
這里的效率:
- 一旦發現某些東西就打破回圈
- 對具有該 id 的物件不感興趣,只對檢查那里的某物是否具有該 id 感興趣
o = {
"a":[{"id":"1123","value":"test1"}],
"b":[{"id":"1124","value":"test2"}],
"c":[{"id":"1125","value":"test3"}]
}
for (key in o) {
if (o[key].some(x => x.id === '1124')) {
console.log(key);
break;
}
}
uj5u.com熱心網友回復:
const input = "1124"
const obj = {
"a":[{"id":"1123","value":"test1"}],
"b":[{"id":"1124","value":"test2"}],
"c":[{"id":"1125","value":"test3"}]
}
Object.values(obj).filter((ob, i)=>{if(ob[0].id === input){console.log(Object.keys(obj)[i])}})
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/369219.html
標籤:javascript 数组 打字稿 数据结构 ecmascript-6
上一篇:如何用資料形成一個陣列陣列
