嗨,我正在尝试使用下划线功能执行_.find。当我尝试执行它时,它返回undefined,但是我从该对象进行的所有字符串搜索都始终存在。请在下面找到我的示例数据结构:
oArrays = [
{
"c":"ABC",
"sc":[
{ "name":"ABC123", "t1":0, "t2":0 },
{ "name":"ABC456", "t1":0, "t2":0 },
{ "name":"ABC789", "t1":0, "t2":0 }
]
},
{
"c":"BCDEF",
"sc":[
{ "name":"JJHS", "t1":0, "t2":0 },
{ "name":"JKHJYH", "t1":0, "t2":0 },
{ "name":"DKJHKJ", "t1":0, "t2":0 }
]
},
{
"c":"ZYXV",
"sc":[
{ "name":"KDSKD", "t1":0, "t2":0 },
{ "name":"PWIFGF", "t1":0, "t2":0 },
{ "name":"WWSD", "t1":0, "t2":0 }
]
},
]
_.find(oArrays, function(item){
return item.sc.name==="ABC123" ;
});
上面的代码不起作用,结果不确定。...是否可以仅在一个_.find函数中执行它?
我尝试使用多个_.map函数,它可以工作。但是,我尽可能不使用它,因为它将有太多循环。(以下示例)
_.map(oArrays, function(item){
_.find( item.sc, function( item2 ) {
return item2.name==="ABC123" ;
});
});
糟糕,顺便说一句,我正在使用sails-controller执行这些代码。
非常感谢任何帮助:)
提前致谢!
item.sc.name
永远不会是一个字符串,因为您正在尝试将其与之进行比较。实际上,实际上是undefined
。但是item.sc
是具有该name
属性的对象数组。
您必须检查name
属性是否在寻找中:
_.find(oArrays, function(item) {
return _.contains(_.pluck(item.sc, "name"), "ABC123");
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句