javascript - 如何匹配对象的多个属性
问题描述
我可以很容易地匹配一个属性
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 语句中添加另一个条件,但这似乎不起作用。
谢谢
解决方案
你可以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)
推荐阅读
- css - 如何水平对齐菜单?
- xpath - 使用 xpath 检查字符串是否只有 ASCII 字符
- powershell - 将对象中的数据导出到csv中的单个单元格
- php - 为什么我在第 11 行的 C:\UwAmp\www\v.php 中收到错误解析错误:语法错误,意外 '[',期待 ')'?
- php - HTML/PHP 联系表单在 Heroku 上不起作用
- windows - 如何过滤 cl.exe 的输出但保留成功/错误代码?
- artifactory - Concourse + Artifactory - 找不到版本“1.0.0”的文件
- angular - 如何在 ngif 中使用 localstorage 值
- android - “未定义的引用错误”故障排除 - Android Studio/CMake/Clang++A
- spark-streaming - 从 Spark 2.2 到 2.3 的结构化流有什么区别?