javascript - 在vuejs中比较数组

标签 javascript vue.js vuejs2

{
   "product_hot": {
        "default": {
            "name": "Rose",
            "values": [
                "product_rose",
                "product_default"
            ]
        },
        "exclusive": {
            "name": "Cherry Blossom",
            "values": [
                "product_cherryBlossom",
                "product_exclusive",
            ]
        }
    },
}

我已经从数据库中检索了结果。它是一个数组:

console.log(this.productType) // result: ['product_cherryBlossom', 'product_cherryBlossom'];

如何将此结果与上面的对象进行比较,以获得 key :exclusive。 我的问题可能有很多错误。请给我更多反馈。谢谢

最佳答案

假设下面是可比较的对象

let compObj = {
   "product_hot": {
        "default": {
            "name": "Rose",
            "values": [
                "product_rose",
                "product_default"
            ]
        },
        "exclusive": {
            "name": "Cherry Blossom",
            "values": [
                "product_cherryBlossom",
                "product_exclusive",
            ]
        }
    },
}

那么你可以尝试类似的事情

// 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;
}

关于javascript - 在vuejs中比较数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69573805/

相关文章:

javascript - v-for ="n in 10"中的起始范围从零开始

javascript - 在数据表列中设置复选框的样式

javascript - JS中将浮点值格式化为小数点后3位

javascript - 在 Vuejs 中使用 v-for 渲染列表?

javascript - 如何使用vue.js/nuxt.js获取目录下的所有图片文件

vue.js - 从 Vuejs 中的动态表单获取所有输入值

javascript - 向列表添加删除按钮

javascript - jquery on 不会对由clone()添加的元素使用react

javascript - Vue 3 react 性未从类实例内部触发

css - 如何使表格标题不可滚动bootstrap vue