获取带有下划线的数组中的对象.js
Get object in array with underscore.js
我有一个函数,它有一个相当复杂的对象,格式如下:
function getNBATeamsESPNByAbbrev(abbrev)
{
var json = {
"sports":[
{
"name":"basketball",
"id":40,
"uid":"s:40",
"leagues":[
{
"name":"National Basketball Assoc.",
"abbreviation":"nba",
"id":46,
"uid":"s:40~l:46",
"groupId":7,
"shortName":"NBA",
"teams":[
{
"id":1,
"uid":"s:40~l:46~t:1",
"location":"Atlanta",
"name":"Hawks",
"abbreviation":"ATL",
},
{
"id":2,
"uid":"s:40~l:46~t:2",
"location":"Boston",
"name":"Celtics",
"abbreviation":"BOS",
"color":"006532",
},
]
}
]
}
],
"resultsOffset":0,
"resultsLimit":50,
"resultsCount":30,
"timestamp":"2014-03-22T23:42:43Z",
"status":"success"
}
obj = _.find(json.sports[0].leagues[0].teams, function(obj) { return obj.abbreviation == abbrev })
if (obj !== undefined)
{
var team = new Object();
team.abbrev = abbrev;
team.location = obj.location;
team.nickname = obj.name;
return team;
}
}
在这个示例JSFiddle中可以更容易地看到。所以我有了团队缩写,我想把团队对象作为一个整体拉回来(这是一个简化的版本,只留下必要的细节)。这似乎工作得很好。然而,出现了另一种情况,在这种情况下,我需要根据其location + " " + name
拉回团队对象。所以我试着用下划线做同样的事情,传入参数name
,并将._find
中的谓词更改为return obj.location + " " + obj.name == name
。例如,我将Atalnta Hawks
作为name
传入,并期望返回相关的团队对象。下面是一个非常相似的JSFiddle,它演示了这个更改。但是,现在它似乎找不到我想拉的团队对象。是因为在underscore.js中不允许这样的字符串连接,还是我遗漏了什么愚蠢的东西?
第50行,有:
team.abbrev = obj.abbrev;
应该是
team.abbrev = obj.abbreviation;
相关文章:
- 使用JS将数组转换为json对象
- 查看JS对象的所有键,甚至是getter定义的键
- 在URL中传递JS对象
- 为什么要包装每一个原型“;类“;JS中具有匿名函数的对象
- 当属性不一致时,如何根据属性对JS对象列表进行排序
- Node.js中的JavaScript原型对象效率
- 如何使用自定义功能覆盖时间轴对象.js时间轴对象的_repaintMinorText
- 如何在第三轴上旋转 3D 对象.js
- 三个中是否有容器类型对象.js来转换一组子对象
- 从 JSON 对象 - JS 周围删除双引号
- 删除对象JS中的节点
- 在对象数组中搜索非空对象JS
- 按未定义的值从数组中选择对象?JS
- 递归循环,直到我们'重新处理对象[JS]
- 向窗口对象-js添加新属性时得到通知
- 如何包含对象/关联数组到对象(js)
- 加载依赖于页面的面向对象JS属性的最好方法是什么?
- 合并新的数组对象到现有的对象js
- 获取带有下划线的数组中的对象.js
- 在带有下划线的嵌套集合中查找对象.js