blah = [[1,"a"], [2,"b"], [3,"c"]]
var example = {x: blah };
example.addItem = function(number,letter){
this.x.push([number,letter])
};
example.addItem(4, "d");
example.addItem(5, "e");
我想知道如何使用一次调用添加多个值。
答案 0 :(得分:2)
函数可以接受任意值的序列 - 使用数组(显式,单个参数)或使用arguments
对象(隐式地,使用可变数量的参数)。
明确地 - 接受一系列项目:
function add(items) {
for (var i = 0; i < items.length; i++)
x.push(items[i]);
}
}
add([[4, "d"], [5, "e"]])
隐式#1 - 接受以单个值提供的任意数量的参数:
function add(/* item1, item2, .. */) {
for (var i = 0; i < arguments.length; i++)
x.push(arguments[i]);
}
}
add([4, "d"], [5, "e"])
隐式#2 - 接受以对提供的任意数量的参数:
function add(/* k1, v1, k2, v2, .. */) {
for (var i = 0; i < arguments.length; i += 2)
x.push([arguments[i], arguments[i+1])
}
}
add(4, "d", 5, "e")
Array.splice
或concat
可能有用;为了简单和一致,没有显示这些内容。
答案 1 :(得分:0)
如果您不想更改addItem
,可以执行此操作:
[[4, "d"], [5, "e"]].forEach((params) => example.addItem.apply(example, params))