Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在对象中传递多个参数';s属性函数以避免多次调用_Javascript - Fatal编程技术网

Javascript 在对象中传递多个参数';s属性函数以避免多次调用

Javascript 在对象中传递多个参数';s属性函数以避免多次调用,javascript,Javascript,我想知道如何使用一个调用添加多个值 一个函数可以接受任意的值序列——要么使用数组(显式,单个参数),要么使用对象(隐式,可变参数数) 显式-接受项目数组: 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"); examp

我想知道如何使用一个调用添加多个值

一个函数可以接受任意的值序列——要么使用数组(显式,单个参数),要么使用对象(隐式,可变参数数)

显式-接受项目数组:

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");
功能添加(项目){
对于(变量i=0;i
隐式#1-接受作为单个值提供的任意数量的参数:

function add(items) {
  for (var i = 0; i < items.length; i++)
     x.push(items[i]);
  }
}

add([[4, "d"], [5, "e"]])
函数添加(/*item1,item2,…*/){
for(var i=0;i
隐式#2-接受成对提供的任意数量的参数:

function add(/* item1, item2, .. */) {
  for (var i = 0; i < arguments.length; i++)
     x.push(arguments[i]);
  }
}

add([4, "d"], [5, "e"])
函数添加(/*k1,v1,k2,v2,…*/){
对于(变量i=0;i


Array.splice
concat
可能很有用;为了简单性和一致性,没有显示这些内容。

如果您不想更改
附加项,可以执行以下操作:

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

concat将是我的第一选择,为什么要使用for循环?@goldylucks迭代和/或操纵数组的替代方法是避免调用函数的次要问题(在这种情况下,它被认为是
addItem
函数)多次。使用
concat
也会增加变量对的差异,因为源不是数组元组序列。
[[4, "d"], [5, "e"]].forEach((params) => example.addItem.apply(example, params))