Tengo un mapa de objetos:
"0": { key: 'id', value: { name: "eval" // other variables } }, "1": { key: 'id', value: { name: "help" // other variables } } // and so on Necesito encontrar un elemento en el mapa cuya variable de name sea igual a "eval". ¿Cuál es la forma más fácil de hacer esto?
Si "mapa" es una matriz
let arr = [{key:'id', value:{ name:'eval' }}] let item = arr.find(el => el.value.name == 'eval')Si "mapa" es un objeto
let obj = {0:{key:'id', value:{ name:'eval' }}} let item = Object.values(obj).find(el => el.value.name == 'eval')Use <Array>.from para convertir los valores del mapa en una matriz y luego filtre lo que desee.
const map = new Map(); map.set(0, { key: 'id', value: { name: "eval" } }); map.set(1, { key: 'id', value: { name: "help" } }); const result = Array.from(map.values()) .filter(x => x.value.name === 'eval')[0]; console.log(result);solución simple y mejor
const tmp = { "0": { key: "id", value: { name: "eval" // other variables } }, "1": { key: "id", value: { name: "eval" // other variables } } }; function findEval(obj, target) { for (var i=0; i < Object.keys(obj).length; i++) { if (obj[i].value.name === target) { return obj[i].value.name; } } } console.log(findEval(tmp, 'eval'))