我想编写一个可以接受可变数量参数的javascript函数,这些参数应该是具有结构的东西。 让我们举个例子:
该函数将在页面内部注入一些HTML,并且必须对传递给函数的每个元素重复此HTML
让我们假设:
element1 = {name:"john",image:"/john.jpg"}
element2 = {name:"jack",image:"/jack01.jpg"}
element3 = {name:"Linda",image:"/001.jpg"}
option1 = [element1,element2]
option2 = [element1,element2,element3]
function injectPeople (opt){
i=0
foreach opt {
inject opt[i].name;
injectelsewhere opt[i].image
i++
}
}
我想将此功能称为:
injectPeople (option1);
或
injectPeople (option2);
或者
injectPeople ();
不会注入任何东西。
有没有一种干净的方法来实现这一目标?对象和数组是最好的方法吗?
PS:标题有点奇怪,但我没有找到更好的描述方法,随意编辑它以使问题更清晰。答案 0 :(得分:1)
这是你需要的吗?
var elements = [{name:"john",image:"/john.jpg" },
{name:"jack",image:"/jack01.jpg"},
{name:"Linda",image:"/001.jpg"}],
option1 = elements.slice(1, elements.length),
option2 = elements;
function injectPeople (opts){
if(!opts) throw new ReferenceError('opts not defined');
$.each(opts, function(i, v){
//do inject stuff
console.log(v.name, v.image);
});
}
injectPeople(option1);
答案 1 :(得分:1)
在较新的浏览器中,您只需使用Array.prototype.forEach()
:
option1.forEach(function (a){
injectPeople(a);
})