Tengo un objeto que contiene objetos. ¿Cómo filtro el valor de "título" en función de si la identificación coincide?
{ "0": { "id": 1912, "title": "Fiction", }, "1": { "id": 1957, "title": "Non-Fiction", }, "2": { "id": 1958, "title": "Literature", }, }Por ejemplo, si const id= 1958 , entonces la salida: Literatura
Producción:
LiteraturePuedes probar esto:
let data = { "0": { "id": 1912, "title": "Fiction", }, "1": { "id": 1957, "title": "Non-Fiction", }, "2": { "id": 1958, "title": "Literature", }, }; let getTitle = (obj, id)=>{ return Object.values(obj).filter(x=>x.id===id)?.[0]?.title }; console.log(getTitle(data,1958)) También puede usar find en lugar de filter .
Sin encadenamiento opcional según el comentario de OP:
let data = { "0": { "id": 1912, "title": "Fiction", }, "1": { "id": 1957, "title": "Non-Fiction", }, "2": { "id": 1958, "title": "Literature", }, }; let getTitle = (obj, id)=>{ let element = Object.values(obj).find(x=>x.id===id); return element ? element.title : ""; }; console.log(getTitle(data,1958))