Function 尝试创建从数组中提取URL的函数。JavaScript
因此,基本上我想创建一个函数,当发出警报时,该函数从数组返回URL(在本例中,数组被声明为“网站”)。该函数有两个参数“websites”和“searchTerm” 我正在努力使函数正常运行,因此当我在函数的searchTerm参数中键入yahoo、google或bing时;我希望它返回相应的URL 任何帮助或支持都将不胜感激。 对不起,如果我没有在我的解释中说清楚,如果是这样的话,请让我知道,我会尽量在我的解释中说得更清楚Function 尝试创建从数组中提取URL的函数。JavaScript,function,javascript,Function,Javascript,因此,基本上我想创建一个函数,当发出警报时,该函数从数组返回URL(在本例中,数组被声明为“网站”)。该函数有两个参数“websites”和“searchTerm” 我正在努力使函数正常运行,因此当我在函数的searchTerm参数中键入yahoo、google或bing时;我希望它返回相应的URL 任何帮助或支持都将不胜感激。 对不起,如果我没有在我的解释中说清楚,如果是这样的话,请让我知道,我会尽量在我的解释中说得更清楚 提前谢谢 为什么不直接使用对象 var websites = {
提前谢谢 为什么不直接使用对象
var websites = {
Google: 'www.google.com',
Yahoo: 'www.yahoo.com'
};
function filterURL(sites, searchTerm) {
if (sites[searchTerm]) {
return sites[searchTerm];
} else {
// What do you want to do when it can't be found?
}
}
alert(filterURL(websites, 'Google')); // alerts 'www.google.com'
为什么不直接使用一个对象呢
var websites = {
Google: 'www.google.com',
Yahoo: 'www.yahoo.com'
};
function filterURL(sites, searchTerm) {
if (sites[searchTerm]) {
return sites[searchTerm];
} else {
// What do you want to do when it can't be found?
}
}
alert(filterURL(websites, 'Google')); // alerts 'www.google.com'
以下是如何:
var websites = ["www.google.com|Google" , "www.yahoo.com|Yahoo" , "www.bing.com|Bing"];
function filterURL(websites,searchTerm)
{
for (var i = 0; i < websites.length; i++) {
if (websites[i].split('|')[1] === searchTerm) {
return websites[i].split('|')[0];
}
}
}
var网站=[“www.google.com | google”、“www.yahoo.com | yahoo”、“www.bing.com | bing”];
功能过滤器URL(网站、搜索术语)
{
对于(var i=0;i
您还可以验证和改进功能:
function filterURL(websites,searchTerm)
{
if (typeof websites != 'Array' || ! searchTerm) return false;
for (var i = 0; i < websites.length; i++) {
if (websites[i].split('|')[1] === searchTerm) {
return websites[i].split('|')[0];
}
}
return false;
}
功能过滤器URL(网站、搜索术语)
{
如果(网站类型!=“Array”| |!searchTerm)返回false;
对于(var i=0;i
以下是如何:
var websites = ["www.google.com|Google" , "www.yahoo.com|Yahoo" , "www.bing.com|Bing"];
function filterURL(websites,searchTerm)
{
for (var i = 0; i < websites.length; i++) {
if (websites[i].split('|')[1] === searchTerm) {
return websites[i].split('|')[0];
}
}
}
var网站=[“www.google.com | google”、“www.yahoo.com | yahoo”、“www.bing.com | bing”];
功能过滤器URL(网站、搜索术语)
{
对于(var i=0;i
您还可以验证和改进功能:
function filterURL(websites,searchTerm)
{
if (typeof websites != 'Array' || ! searchTerm) return false;
for (var i = 0; i < websites.length; i++) {
if (websites[i].split('|')[1] === searchTerm) {
return websites[i].split('|')[0];
}
}
return false;
}
功能过滤器URL(网站、搜索术语)
{
如果(网站类型!=“Array”| |!searchTerm)返回false;
对于(var i=0;i
尝试类似以下内容:
var websites = {google: 'www.google.com', yahoo: 'www.yahoo.com'};
function filterURL(websites,searchTerm)
{
return websites[searchTerm] || 'www.defaultsearchwebstirehere.com';
}
**更新以下评论**
像这样构建您的网站对象(其中输入是由管道字符分隔的键值数组):
var网站={};
对于(变量i=0;i
}尝试类似以下内容:
var websites = {google: 'www.google.com', yahoo: 'www.yahoo.com'};
function filterURL(websites,searchTerm)
{
return websites[searchTerm] || 'www.defaultsearchwebstirehere.com';
}
**更新以下评论**
像这样构建您的网站对象(其中输入是由管道字符分隔的键值数组):
var网站={};
对于(变量i=0;i
}您真的应该使用类似哈希表的结构,这样就不必每次都搜索整个数组。大概是这样的:
var websites = {
"Google": "www.google.com",
"Yahoo": "www.yahoo.com",
"Bing": "www.bing.com"
};
function filterURL(websites, searchTerm) {
if (websites[searchTerm] !== undefined)
return websites[searchTerm];
else
return null;
}
您实际上应该使用类似哈希表的结构,这样就不必每次都搜索整个数组。大概是这样的:
var websites = {
"Google": "www.google.com",
"Yahoo": "www.yahoo.com",
"Bing": "www.bing.com"
};
function filterURL(websites, searchTerm) {
if (websites[searchTerm] !== undefined)
return websites[searchTerm];
else
return null;
}
我不知道为什么要使用数组来实现这一点,因为您真正做的事情更适合键值对;然而,我会这样做:
function filterURL(websites, searchTerm) {
var i = 0,
parts;
for (i = 0; i < websites.length; i++) {
parts = websites[i].split("|");
if (parts[1].toLowerCase() === searchTerm) {
return parts[0];
}
}
}
我不知道为什么要使用数组来实现这一点,因为您真正做的事情更适合键值对;然而,我会这样做:
function filterURL(websites, searchTerm) {
var i = 0,
parts;
for (i = 0; i < websites.length; i++) {
parts = websites[i].split("|");
if (parts[1].toLowerCase() === searchTerm) {
return parts[0];
}
}
}
你是怎么尝试的?一个基本的算法可以是:在数组上循环,查找|,分割字符串,检查searchterm是否匹配。展示解决问题的尝试将在获得答案方面帮助您很多。您可以使用jQuery吗?如果是,有一个grep函数可以满足您的需要@克莱斯特-首先,谢谢你的回答。我遇到的问题是如何组织和组织代码。你的解释听起来和我想做的差不多,只是我确定需要如何组织。@RezaSanaie-嗨,谢谢你的帮助。我将无法使用jQuery…您是如何尝试的?一个基本的算法可以是:在数组上循环,查找|,分割字符串,检查searchterm是否匹配。展示解决问题的尝试将在获得答案方面帮助您很多。您可以使用jQuery吗?如果是,有一个grep函数可以满足您的需要@克莱斯特-首先,谢谢你的回答。我遇到的问题是如何组织和组织代码。你的解释听起来和我想做的差不多,只是我确定需要如何组织。@RezaSanaie-嗨,谢谢你的帮助。我将无法使用jQuery。。。