const items = [ { 'first': [205, 208, 222] }, { 'second': 205 } ]Necesito encontrar claves por coincidencia en su valor/valores
ejemplo:
encuentre la clave por id=205 , salida: 'first', 'second'
encontrar clave por id=208 , salida: 'first'
Puede intentar obtener las matrices de claves y valores, luego filter las claves y verificar si el índice correspondiente en los values contiene la variable id .
const items = [ { 'first': [205, 208, 222] }, { 'second': 205 } ] const id = 205; let keys = items.map(item => Object.keys(item)[0]); let values = items.map(item => Object.values(item)[0]); let output = keys.filter((_, index) => (values[index] == id || (typeof(values[index]) == 'object' && values[index].includes(id)))); console.log(output)Puede hacer clic en 'Ejecutar fragmento de código' y ver el resultado como se menciona en la pregunta
const items = [{ first: [205, 208, 222], }, { second: 205, }, ]; const toFind = 205; const fin = items.reduce((finalOutput, item) => { let key = Object.keys(item)[0]; if (Array.isArray(item[key])) { if (item[key].includes(toFind)) finalOutput.push(key); } else if (item[key] === toFind) { finalOutput.push(key); } return finalOutput; }, []); console.log(fin);puedes hacer algo como esto
const items = [ { 'first': [205, 208, 222] }, { 'second': 205 } ] const findKey = (data, value) => data.reduce((res, item) => { let [[key, v]] = Object.entries(item) v = Array.isArray(v)?v: [v] if(v.includes(value)){ return [...res, key] } return res }, []) console.log(findKey(items, 205)) console.log(findKey(items, 208))