Tengo el valor "b" conmigo y quiero obtener el artículo "3648" usando eso, ¿cómo puedo hacerlo usando JavaScript?
{ "someID": "16385421", "items": { "9836": { "id": "a" }, "3648": { "id": "b" }, "7738": { "id": "c" } } }o/p
"3648": { "id": "b" }Editado después de tu comentario:
getByItemId = ( val ) => { let result; for( let elem in data.items ){ const check = data.items[ elem ]; if( check.id == val ) result = check; } console.log( result ) return result; } getByItemId( "b" )Podría hacerlo con algún código similar al siguiente.
Primero obtenemos todas las claves de objeto en el objeto obj.items. A continuación iteramos a través de ellos. En cada paso, verificamos si la ID deseada está contenida dentro del subobjeto indexado por la clave actual en la matriz. Si se encuentra, actualizamos el objeto de resultado. Luego devolvemos un objeto vacío si la clave no está presente, y algo como lo siguiente si se encontró: {key: '3648', id: 'b'} .
"use strict"; function byId(id){return document.getElementById(id)} function qs(sel,parent=document){return parent.querySelector(sel)} function qsa(sel,parent=document){return parent.querySelectorAll(sel)} window.addEventListener('load', onLoaded, false); var rawData = { "someID": "16385421", "items": { "9836": { "id": "a" }, "3648": { "id": "b" }, "7738": { "id": "c" } } }; function getIDs(data, searchItemId) { let keys = Object.keys(data.items); let result = {}; keys.forEach( keyFunc ); return result; function keyFunc(elem, index, collection) { if (data.items[elem].id == searchItemId) { result.key = elem; result.id = searchItemId; } } } function onLoaded(evt) { console.log( getIDs(rawData, "b") ); }Tu puedes hacer:
const obj = { someID: '16385421', items: { 9836: { id: 'a', }, 3648: { id: 'b', }, 7738: { id: 'c', }, }, } const getParentObjectByValue = (obj, value) => { const key = Object.keys(obj.items).find((k) => obj.items[k].id === value) return key ? { [key]: obj.items[key].id } : undefined } console.log(getParentObjectByValue(obj, 'b')) console.log(getParentObjectByValue(obj, 'zz'))