让我们说我试图推送多个电话,如:
var fields = [1,2];
fields.push(test("#test1", 1));
fields.push(test("#test2", 2));
fields.push(test("#test3", 3));
fields.push(newTest("#test5", 3, 'something'));
function test(a, b){
// something here
}
function newTest(a, b, c){
// something here
}
有一种有效的方法可以在一次通话中完成所有操作吗?像:
fields.push(test({"#test1": 1, "#test2": 2, "#test3": 3}), newTest(3, 4, "something"));
或
fields.push(test(["#test1": 1, "#test2": 2, "#test3": 3]), newTest(3, 4, "something"));
答案 0 :(得分:1)
您正在寻找的是Array.prototype.concat
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/concat
fields = fields.concat(
test("#test1", 1),
test("#test2", 2),
test("#test3", 3),
newTest("#test5", 3, 'something')
);
如果值是数组,则推送该数组的值而不是整个数组。其他值直接推送。
答案 1 :(得分:1)
有几种方法可以使用一个命令将多个值添加到数组中。您可以像下面显示的问题中提到的那样创建自己的函数,或者像其他答案一样使用CONCAT。以下是两个可以运行的工作示例,以了解其工作原理:
//Original Array
var fields = [1,2];
//Show original values
console.log(fields);
//Function call with multiple values
test([3,4,5,6,7]);
//Function to add each value sent to function in array
function test(valueArray){
for (var i = 0; i < valueArray.length; i++)
{
var singleValue = valueArray[i];
fields.push(singleValue);
}
}
//Show the result
console.log(fields);
//OR CONCAT TO DO THE SAME THING EASILY
fields = [1,2];;
fields = fields.concat(3,4,5,6,7);
console.log(fields);
&#13;
答案 2 :(得分:0)
如果您想一次性添加所有内容,可以执行以下操作:
var fields = [];
function test(a, b){
return a+' '+b;
}
function newTest(a, b, c){
return a+' '+b+' '+c;
}
fields.push(test("#test1",1),test("#test2",2),test("#test3",3),newTest("#newTest1",1,1));
console.log(fields);