首页 > 解决方案 > 如何匹配对象的多个属性

问题描述

我可以很容易地匹配一个属性

var peoples = [
  { "name": "bob", "dinner": "pizza" },
  { "name": "john", "dinner": "sushi" },
  { "name": "larry", "dinner": "hummus" },
  { "name": "john", "dinner": "pie" }
];

$.each(peoples, function(i, val) {
    $.each(val, function(key, name) {
        if (name === "john")
            console.log(key + " : " + name);
       });
});

但是由于有 2 个 john,我如何匹配一个特定的(例如,喜欢寿司的 john)然后返回整个匹配的对象(在 json 中)?我尝试在 if 语句中添加另一个条件,但这似乎不起作用。

谢谢

标签: javascriptjquery

解决方案


你可以find用来检查完全匹配

var peoples = [
  { "name": "bob", "dinner": "pizza" },
  { "name": "john", "dinner": "sushi" },
  { "name": "larry", "dinner": "hummus" },
  { "name": "john", "dinner": "pie" }
];

var filteredResult = peoples.find(val => val.name ==="john" && val.dinner==="sushi");
console.log(filteredResult)


推荐阅读