{ "product_hot": { "default": { "name": "Rose", "values": [ "product_rose", "product_default" ] }, "exclusive": { "name": "Cherry Blossom", "values": [ "product_cherryBlossom", "product_exclusive", ] } }, }He recuperado los resultados de la base de datos. y es una matriz:
console.log(this.productType) // result: ['product_cherryBlossom', 'product_cherryBlossom']; ¿Cómo comparo este resultado con el objeto anterior, para obtener la clave como: exclusive ? Mi pregunta puede tener muchos errores. Por favor, dame más comentarios. Gracias.
Suponiendo que debajo está el Objeto comparable
let compObj = { "product_hot": { "default": { "name": "Rose", "values": [ "product_rose", "product_default" ] }, "exclusive": { "name": "Cherry Blossom", "values": [ "product_cherryBlossom", "product_exclusive", ] } }, }entonces puedes intentar algo como
// Function that returns keys as an array getCategoryKey(resp, compObj) { // pass the response and compObj as arguments to this function let category = []; resp.forEach(item => { Object.keys(compObj.product_hot).forEach(categ => { if(compObj.product_hot[categ].values.includes(item)) { category.push(categ); } } } ); console.log('Categories corresponding to your response', category); return category; }Prueba como el siguiente fragmento:
const product = { "product_hot": { "default": { "name": "Rose", "values": [ "product_rose", "product_default" ] }, "exclusive": { "name": "Cherry Blossom", "values": [ "product_cherryBlossom", "product_exclusive", ] } }, } const result = ['product_cherryBlossom', 'product_cherryBlossom'] const result2 = ['product_cherryBlossom', 'product_rose'] function findType(arr) { const res = [] arr.forEach(r => { for(let key in product.product_hot) { if(product.product_hot[key].values.includes(r)) res.push(product.product_hot[key].name) } }) return res } console.log(findType(result)) console.log(findType(result2))