我有一个数组:
var animals = ['cat', 'dog', 'horse', 'duck']
并且希望仅通过索引将指定的元素从数组(而不是整个数组)传递给函数:
function foobar(animals[1], animals[3])
{
some function...
}
这不起作用。调试工具需要不同的语法。
答案 0 :(得分:3)
function foobar(a, b)
{
some function...
}
foobar(animals[1], animals[3]);
答案 1 :(得分:2)
function foobar(animal)
{
some function...
}
foobar(animals[1]); // send dog to foobar - js arrays start at 0
或多个(传递数组意味着只需要一个参数)
function foobar(subanimals)
{
some function...
}
foobar([animals[1],animals[3]]); // send dog and duck to foobar as an array
最后,如果您不想关心是否收到数组或单个项目
function foobar(subanimals)
{
if (!subanimals instanceof Array) subanimals=[subanimals]; //force array
some function...
}
foobar(animals[2]); // send ONLY horse
另请参阅array slice
在最后两个功能中你可以做到
for (var i=0;i<subanimals.length;i++) {
if (subanimals[i]=="duck") alert("fowl");
else if (subanimals[i]=="horse") alert("ungulate");
else alert("Neither fowl nor horse");
}