我正在尝试使用_.where来查看这个大型的json映射文件。我之前使用过它,但搜索词从不包含空格,功能运行良好。现在我使用的是具有空格的搜索词,它永远不会带回任何匹配项。以下是一段带有示例entityName(搜索词)的代码。
entityName = "HEMTT WRECKER M984A1 MK19";
alert("entityName2: " + entityName);
entityMap = _.where(cdpeConfig.oobEntityMap, { "obs name" :entityName});
alert("entityMap: " + entityMap);
oobEntityMap内部有json元素,上面的entityName应该与以下内容匹配:
{
"obs name":"HEMTT WRECKER M984A1 MK19",
"edcss name":"M977_HEMTT_CARGO",
"mapping type":"skos:relatedMatch",
"obs dis enum":"1:2:225:7:19:3:2",
"edcss dis enum":"1:0:225:9:19:1:0"
}
答案 0 :(得分:1)
Javascript没有_.where()函数。 Underscore确实有这个功能,这可能是你使用的功能。
http://underscorejs.org/#where
确实允许空格。
var stuff = [
{"Bilbo Baggins" : "Little Hobbit"},
{"Gandalf Grey" : "Tall Wizard"}
];
var foo = _.where(stuff, {"Bilbo Baggins" : "Little Hobbit"});
console.log(foo);
尝试查看cdpeConfig.oobEntityMap是否传递实际上是一个对象或数组,并且未定义或为空。 。
答案 1 :(得分:1)
您可以尝试使用_.filter
代替_.where
,看看这是否有所不同:
entityMap = _.filter(cdpeConfig.oobEntityMap, function(obj){
return obj["obs name"].match(/HEMTT WRECKER M984A1 MK19/);
});