首页 > 解决方案 > array.pop() 的返回值;

问题描述

我想知道为什么“console.log(a);” 是“未定义”

const number = ['0', '1', '2'];

const pop = array => {
  array.pop();
}

console.log(number); // [ '0', '1', '2' ]
a = pop(number);
console.log(number); // [ '0', '1' ]
console.log(a); // undefined
b = number.pop();
console.log(number); // [ '0' ]
console.log(b); // 1

我希望“未定义”应该是“2”

标签: javascriptarraysecmascript-6

解决方案


当 之后的第一个非空白字符=>不是左花括号时,箭头函数才会隐式返回{。去掉大括号使其成为一个简洁的函数:

const pop = array => array.pop();

或者return像在普通的详细函数中一样使用:

const pop = array => {
  return array.pop();
};

另请注意,当前pop所做的Array.prototype.pop也是 - 从数组中删除最后一个元素,并返回该元素。不编写自己的函数更简单,只需使用内置数组方法:

a = number.pop();

推荐阅读