【发布时间】:2016-12-26 01:29:36
【问题描述】:
假设我有一个这样的对象:
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
【问题讨论】:
-
使用函数谓词?
-
哦,您的意思是使用
_.find()和谓词?我什至没有想到这一点。这应该在一个函数中完成。 -
我喜欢你的解决方案。我认为很难摆脱这个问题的双循环外观。也许为了可读性把它分开?
var students = _.findWhere(data, { class: 101 }).students; var aliceGrade = _.findWhere(students, { name: 'alice' }).grade;
标签: javascript arrays object underscore.js