Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将字符串数组作为参数传递给函数?_Javascript_Arrays_String - Fatal编程技术网

Javascript 如何将字符串数组作为参数传递给函数?

Javascript 如何将字符串数组作为参数传递给函数?,javascript,arrays,string,Javascript,Arrays,String,我有几个数组,如下所示: var galImgs = ["http://domain.tld/gallery/image-001.jpg", "http://domain.tld/gallery/image-002.jpg", "http://domain.tld/gallery/image-003.jpg"], preloadImgs = []; function preload() { for (i = 0; i

我有几个数组,如下所示:

var galImgs = ["http://domain.tld/gallery/image-001.jpg",
               "http://domain.tld/gallery/image-002.jpg",
               "http://domain.tld/gallery/image-003.jpg"],
    preloadImgs = [];
function preload() {
    for (i = 0; i < preload.arguments.length; i++) {
    preloadImgs[i] = new Image();
    preloadImgs[i].src = preload.arguments[i];
    }
}
我想使用一个简单的
for
循环从
galImgs
数组中的值加载图像,如下所示:

var galImgs = ["http://domain.tld/gallery/image-001.jpg",
               "http://domain.tld/gallery/image-002.jpg",
               "http://domain.tld/gallery/image-003.jpg"],
    preloadImgs = [];
function preload() {
    for (i = 0; i < preload.arguments.length; i++) {
    preloadImgs[i] = new Image();
    preloadImgs[i].src = preload.arguments[i];
    }
}
作为单个字符串而不是逗号分隔的字符串在数组中传递。如何传递
galImgs
数组,以便将其作为单个参数读取

您正在寻找以下方法:


应该这样做

问题在于使用arguments关键字查找传入事件。你真正想要的是

function preload(images) {
    for (i = 0; i < images.length; i++) {
    preloadImgs[i] = new Image();
    preloadImgs[i].src = images[i];
    }
}
但是,

预加载(galImgs)

作为单个字符串而不是逗号分隔的字符串在数组中传递

不,它在数组中传递,而不是字符串。实际上,您在
预加载
函数中遇到了太多麻烦,只需使用提供给您的数组:

function preload(a) {
    for (i = 0; i < a.length; i++) {
        preloadImgs[i] = new Image();
        preloadImgs[i].src = a[i];
    }
}

第一个参数用于函数中的
this
,您可以使用
undefined
作为默认值;第二个参数是数组,它将作为离散参数显示在函数中。

将其视为单个字符串不必担心。只需为数组提供索引,就可以获得单个字符串

galImgs[0]将返回字符串“http://domain.tld/gallery/image-001.jpg"


您可以使用gallmgs作为数组对象,并且您将在其中拥有一个数组的所有访问器。试试gallmgs.length。

为什么不使用
gallmgs
参数声明函数<代码>函数预加载(galImgs){…}
并且您不需要
预加载。
参数上的前缀
。而
参数
会导致严重的性能损失。:-)@是的,都是真的!希望他知道为什么它不起作用,然后我们知道什么是最佳的;在本例中,它显示了我使用了多少额外的代码:)谢谢,这非常有用。超越一切。干杯@艾萨克:不用担心,很高兴这有帮助。最好的,
function preload(a) {
    for (i = 0; i < a.length; i++) {
        preloadImgs[i] = new Image();
        preloadImgs[i].src = a[i];
    }
}
preload.apply(undefined, galImgs);