我可以返回一个应用于一行的方法的数组吗?

时间:2018-02-21 21:35:53

标签: javascript

我试图理解为什么这些行为不同以及第二个例子到底发生了什么?

我正在尝试返回一个数组,其中有一个项目被推送到它。我在第一个例子中有正确的答案,但我不明白第二个版本中它返回的是长度而不是数组?

我希望有人可以提供一些有关第二个例子的信息吗?

// I'm trying to return a new array with the added item. 

var myArray1 = ["one", "two", "three"];
var myArray2 = ["one", "two", "three"];
var myExtraItem = "four";

// First Example producing desired result. 
function addToList1(someArray, someItem){
  someArray.push(someItem);
  return someArray;
}

console.log(addToList1(myArray1, myExtraItem)); // returns ["one", "two", "three","four"]

// Second Example listing # of items in array. 
function addToList2(someArray, someItem) {
  return someArray.push(someItem);
}

console.log(addToList2(myArray2, myExtraItem)); // returns 4

2 个答案:

答案 0 :(得分:1)

在第一种情况下,您将条目添加到数组,然后返回该数组。在第二种情况下,您将返回数组的长度,如此处所述。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/push

在JavaScript中返回推送到数组是数组的长度。从MDN“push()方法将一个或多个元素添加到数组的末尾,并返回数组的新长度。”

答案 1 :(得分:0)

Array.push方法将一个项添加到数组中,然后返回新的长度。

您的第二个示例直接从.push()调用返回,因此返回长度。

虽然您的第一个示例首先将项目推送到数组,然后返回数组本身。