如何匹配一个对象的多个属性

qui*_*ace 2 javascript jquery

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

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);
       });
});
Run Code Online (Sandbox Code Playgroud)

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

谢谢

Raj*_*mar 6

你可以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)
Run Code Online (Sandbox Code Playgroud)