javascript - 如何简化underscore.js中的两个嵌套findWhere?

标签 javascript arrays object underscore.js

假设我有一个像这样的对象:

var data = [
    {   
        "class": 101,
        "students": [
            { "name": "bob", "grade": 98 },
            { "name": "alice", "grade": 87 }
        ]
    },
    {   
        "class": 103,
        "students": [
            { "name": "mike", "grade": 73 },
            { "name": "bill", "grade": 77 }
        ]
    }
]

是否有更简单的方法使用 underscore.js 来执行此操作?

_(_(data).findWhere({"class": 101}).students).findWhere({"name": "alice"}).grade // is 87

最佳答案

希望这有帮助

var student101 = _.findWhere(data, { "class": 101 }).students;

上面的代码给了你这个 {“姓名”:“鲍勃”,“成绩”:98 }, {“姓名”:“爱丽丝”,“年级”:87 }

这样做我们得到

_.find(_.findWhere(data, { "class": 101 }).students, function(num){ return  num.name  == 'alice'}).grade 

最终结果87

关于javascript - 如何简化underscore.js中的两个嵌套findWhere?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39029680/

相关文章:

javascript - 使用 Django 开发服务器时 HTML5 视频元素不可搜索

HTML 格式的 Javascript 矩阵计算器

javascript - 如何使用rxjs尽早逃脱捕获链?

java - 如何使用 GSON 反序列化无 key 数组?

javascript - 在 KineticJS 中,在使用 css3 旋转的 Canvas 上,事件似乎无法正常工作

c - 如何在 C 中通过引用来引用二维字符数组

python - 一维和二维数组之间的元素明智比较

php - 访问属性名称中包含不允许字符的对象属性

c++ - C++错误 “_main”,引用自:“Xcode

arrays - Swift - 创建类对象数组