【问题标题】:sending multiple parameters all in one call javascript一次调用javascript发送多个参数
【发布时间】:2018-03-06 14:07:06
【问题描述】:

假设我正在尝试推送多个调用,例如:

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

【问题讨论】:

标签: javascript jquery


【解决方案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')
);

如果值是一个数组,则推送该数组的值而不是整个数组。其他值直接推送。

【讨论】:

    【解决方案2】:

    您可以通过多种方式使用一个命令将多个值添加到数组中。您可以像在问题中提到的那样创建自己的函数,如下所示,或者像其他答案提到的那样使用 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);

    【讨论】:

      【解决方案3】:

      如果您想一次添加所有内容,可以执行以下操作:

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

      【讨论】:

        猜你喜欢
        • 2017-01-19
        • 1970-01-01
        • 1970-01-01
        • 2018-08-13
        • 1970-01-01
        • 1970-01-01
        • 2015-12-03
        • 2018-07-14
        • 2020-05-07
        相关资源
        最近更新 更多