使用 lodash 查找匹配值(如果存在)
Use lodash to find a matching value if it exists
我有以下内容:
myArray = [{
"urlTag": "Google",
"urlTitle": "Users",
"status": 6,
"nested": {
"id": 2,
"title": "http:\/\/www.google.com",
}
},
{
"urlTag": "Bing",
"tabTitle": "BingUsers"
}]
我有myUrlTagToSearch = "Yahoo"
,我想遍历myArray
,检查是否有urlTag
等于"Yahoo"
,如果是:return"Yahoo"
,如果不是:只是 return 一个空字符串 (""
)。在这个例子中,它应该 return ""
因为只有 "Google"
和 "Bing"
.
我可以用 lodash 做这个吗?
你可能可以用 lodash 做这个(我对 lodash 不太了解),但如果没有其他人回答有一个简单的香草 JS 解决方案:
function exists(site) {
return myArray.some(function (el) {
return el.urlTag === site;
}) === false ? '': site;
}
exists('Yahoo');
您可以使用 lodash's find()
method 与常规条件 (if
) 语句混合来执行此操作。
对于初学者来说,要搜索数组,您可以使用:
var result = _.find(myArray, { "urlTag": "Yahoo" });
您可以在此处将 "Yahoo"
替换为您的 myUrlTagToSearch
变量。
如果找不到匹配项,它将 return undefined
,否则它将 return 匹配项 Object
。由于对象是 truthy 值而 undefined
是 fasley 值,我们可以简单地使用 result
作为条件if
声明:
if (result)
return "Yahoo";
else
return "";
我们甚至不需要在这里定义result
,因为我们可以简单地使用:
if ( _.find(myArray, { "urlTag": "Yahoo" }) )
return "Yahoo";
else
return "";
甚至:
return _.find(myArray, { "urlTag": "Yahoo" }) ? "Yahoo" : "";
我有以下内容:
myArray = [{
"urlTag": "Google",
"urlTitle": "Users",
"status": 6,
"nested": {
"id": 2,
"title": "http:\/\/www.google.com",
}
},
{
"urlTag": "Bing",
"tabTitle": "BingUsers"
}]
我有myUrlTagToSearch = "Yahoo"
,我想遍历myArray
,检查是否有urlTag
等于"Yahoo"
,如果是:return"Yahoo"
,如果不是:只是 return 一个空字符串 (""
)。在这个例子中,它应该 return ""
因为只有 "Google"
和 "Bing"
.
我可以用 lodash 做这个吗?
你可能可以用 lodash 做这个(我对 lodash 不太了解),但如果没有其他人回答有一个简单的香草 JS 解决方案:
function exists(site) {
return myArray.some(function (el) {
return el.urlTag === site;
}) === false ? '': site;
}
exists('Yahoo');
您可以使用 lodash's find()
method 与常规条件 (if
) 语句混合来执行此操作。
对于初学者来说,要搜索数组,您可以使用:
var result = _.find(myArray, { "urlTag": "Yahoo" });
您可以在此处将 "Yahoo"
替换为您的 myUrlTagToSearch
变量。
如果找不到匹配项,它将 return undefined
,否则它将 return 匹配项 Object
。由于对象是 truthy 值而 undefined
是 fasley 值,我们可以简单地使用 result
作为条件if
声明:
if (result)
return "Yahoo";
else
return "";
我们甚至不需要在这里定义result
,因为我们可以简单地使用:
if ( _.find(myArray, { "urlTag": "Yahoo" }) )
return "Yahoo";
else
return "";
甚至:
return _.find(myArray, { "urlTag": "Yahoo" }) ? "Yahoo" : "";