在一个调用javascript中发送多个参数

时间:2018-03-06 14:07:07

标签: javascript jquery

让我们说我试图推送多个电话,如:

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

3 个答案:

答案 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;
&#13;
&#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);