使用相同的命名参数调用变量

Call Variable with a equal named parameter

我想创建一个用于在网站上重定向的脚本,但目前收效甚微:D

我的想法是像这样创建一些数组:

var google = [
    Google Searching,
    http://www.google.com/
]

var amazon = [
    Amazon Shopping
    http://www.amazon.com/
]

此外,我想编写一个函数来创建一个带有一些信息和重定向的模式框。没问题,但我不知道如何用参数调用这个数组。

例如:

gotoWebsite(google);

function gotoWebsite (website){
    //search array "google" with the paramter
    alert (google[0]);
    alert (google[1]);
}

这个例子应该提醒 Google Searchinghttp://www.google.com/

问题:如何调用具有相等命名参数的数组?

不确定我是否理解你的问题,但这是该怎么做。首先,您的引号 可能有问题,如您的 post 所示,请使用 "(双引号)或 '(单引号)。

现在来解决你的问题。你需要创建一个容器object(),让它成为websites如下

var websites = {};

然后将您的网站对象*放入 websites 对象中,例如

var websites = { 
    google: { 
        name: "Google", 
        url: "https://www.google.com"
    }, 
    amazon: { 
        name: "Amazon", 
        url: "https://www.amazon.com"
    }
    /* More objectes */
}

现在我们有了一个可以使用的对象 key,但我们需要将其包装在一个函数中。如果您遇到问题,例如

,您可以将 websites 对象移动到 gotoWebsite() 范围

websites is undefined

function gotoWebsite(website){

    console.log(websites[website]['name']); // Google
    console.log(websites[website]['url']); // http://www.google.com

    // OR get current key for passed parameter and assign to a variable 

    var website =  websites[website];
    console.log(website['name']); // Google
    console.log(website['url']); // http://www.google.com


}

用法:

gotoWebsite('google');
// Google
// http://www.google.com

这是一个活生生的例子,跟踪 Web Console 以查看输出

var websites = { 
    google: { name: "Google", url: "https://www.google.com" }, 
    amazon: { name: "Amazon", url: "https://www.amazon.com" }
}

function gotoWebsite(website){

    var website = websites[website];
    console.log(website['name']);
    console.log(website['url']);
        
}
gotoWebsite('google');
gotoWebsite('amazon');

如果您正在寻找一种动态定义可以 linked 的网站的方法,我建议从一个数组开始,然后使用一个函数将元素添加到该数组:

var websites = [];

function newWebsite(name,title,url) {
    websites[name] = [ title, url ];
}

然后 goto 函数应该有一个子句来处理尝试 link 尚未定义的站点:

function gotoWebsite (website){
    var site = websites[website];
    if (site === "array") {
        alert (site[0]);
        alert (site[1]);
    } else {
        alert ("unknown website: " + website);
    }
}

站点可以从任何具有函数访问权限的脚本中注册:

newWebsite("google","Google Searching","http://www.google.com/");
newWebsite("amazon","Amazon Shopping","http://www.amazon.com/");

然后 goto 函数可以通过名称获取站点

gotoWebsite("google");