如何使用带有JavaScript的函数在数组中添加元素

时间:2018-08-18 11:28:34

标签: javascript html arrays

我正在尝试使用javascript在数组中添加元素,但是我不能添加多个元素,例如

var myArr = [];
function Items(content) {
  myArr.push(content);
}

Items("item1", "item2", "item3");

或类似的东西

var myArr = [];
function Items(content){
    for(var i=0;i<myArr.length;i++){
      myArr.push(content);
    }
}

Items("item1","item2","item3");

它返回空。

如何使用函数使用javascript在数组中添加元素?

2 个答案:

答案 0 :(得分:1)

您的第一个示例就目前而言是正确的,但是由于要传递多个参数,因此需要声明多个参数以接收它们并使用它们:

var myArr = [];
function Items(item1, item2, item3) { // *** Note parameters
  myArr.push(item1, item2, item3);    // *** Using them
}

Items("item1", "item2", "item3");
console.log(myArr);

或者,您可以传入一个数组:

var myArr = [];
function Items(items) {
  // ES2015+ spread notation
  myArr.push(...items);
  // Or ES5 and earlier:
  // myArr.push.apply(myArr, items);
}

Items(["item1", "item2", "item3"]);
//    ^-------------------------^---- note passing in an array
console.log(myArr);

有关点差符号here的更多信息。

如果您想接受任意长度的离散参数,请在ES2015 +中使用rest parameter

var myArr = [];
function Items(...items) {
  myArr.push(...items);
}

Items("item1", "item2", "item3");
console.log(myArr);

在ES5和更低版本中,您将使用arguments

var myArr = [];
function Items() {
  myArr.push.apply(myArr, arguments);
}

Items("item1", "item2", "item3");
console.log(myArr);

答案 1 :(得分:1)

您只需要推送代表content的第一个参数"item1",则需要传递所有参数(可以使用保留关键字arguments来访问所有传递的参数),如果您使用的是ES6,则可以只使用myArr.push(...arguments),否则,可以使用以下代码:

var myArr = [];
function Items(){
    myArr.push.apply(myArr, arguments);
}

Items("item1","item2","item3");
console.log(myArr);