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);