javascript - 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”
解决方案
仅当 之后的第一个非空白字符=>
不是左花括号时,箭头函数才会隐式返回{
。去掉大括号使其成为一个简洁的函数:
const pop = array => array.pop();
或者return
像在普通的详细函数中一样使用:
const pop = array => {
return array.pop();
};
另请注意,当前pop
所做的Array.prototype.pop
也是 - 从数组中删除最后一个元素,并返回该元素。不编写自己的函数更简单,只需使用内置数组方法:
a = number.pop();
推荐阅读
- python - 即使模块与我正在使用的文件位于同一目录中,也无法导入模块
- django - 如何设置过滤器以使用 DRF renderer-xlsx 生成自定义 EXCELl
- c++ - LNK1181 错误说它在调试目录中找不到对象,但我正在构建一个版本
- bash - 在 Mac 终端中显示当前正在运行的进程时隐藏 bash 脚本的内容
- ibm-information-server - IBM DB2 Bundle 与使用 HADR 和 Tivoli 的 IIS
- git - `git` 不会将 `--help` 传递给自定义脚本
- c - 3D 向量,返回指针还是返回结构?
- python - 使python忽略在多行带有缩进的简单数学方程中的缩进
- python - python 应用程序的多个实例在更新同一行 SQL DB 的情况下如何表现?
- c# - 数据绑定文本框仅在我编辑后更新。以 wpf 形式使用 MVVM