代码之家  ›  专栏  ›  技术社区  ›  Keith

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

  •  0
  • Keith  · 技术社区  · 8 年前

    比方说,我正在尝试推送多个电话,例如:

    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 回复  |  直到 8 年前
        1
  •  1
  •   Kulvar    8 年前

    你要找的是数组。原型康卡特
    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
  •  1
  •   MUlferts    8 年前

    有几种方法可以使用一个命令将多个值添加到数组中。您可以像下面所示的问题中提到的那样创建自己的函数,或者像其他答案中提到的那样使用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
  •  0
  •   buki    8 年前

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

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