javascript - 调用函数而不将其结果分配给变量

标签 javascript

map 函数看起来比 for 循环好得多:

var arr = ["Apple", "Orange"];
// map example
arr.map(function(item){ eat(item); });
// for example
for(var i=0; i<arr.length; i++){
    eat(arr[i]);
}

for相比,我更喜欢map,但是:

  1. map 作为参数的函数应该有一个返回值,该返回值会缩减为 map 应返回的数组。将 viod 函数传递给 map(如我的示例中所示)有何影响?
  2. map 返回一个数组。如果我不将其分配给变量(如我的示例中所示),会发生什么情况?
  3. 有没有像map这样的void函数?

最佳答案

A function, which map becomes as an argument should have a return value to be reduces to an array which map should return. What impact has passing a viod function to a map, like in my example?

没有 return 语句的函数返回的值是未定义。因此,如果您传递一个从不返回任何内容的函数来映射,它将创建一个长度等于原始数组的新数组,并且每个值都是未定义

map returns an array. What happens if I don't assign it to a variable, like in my example?

仍然会创建一个数组,但它会在创建后立即被丢弃,并很快被垃圾回收。这种行为可能会被 JS 引擎优化掉!

Is there any void function like map?

正如其他人所指出的,有一个 Array.prototype.forEach 函数可以迭代数组(类似于映射),但不会创建新数组或使用回调的结果以任何方式与其关联。

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

关于javascript - 调用函数而不将其结果分配给变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20123487/

相关文章:

javascript - 构建一个 div 类来移除粘性元素

javascript - 不确定这个 js 代码在做什么日历脚本

javascript - 如何在前台弹出 YouTube 视频播放器

javascript - 逻辑和运算符在 JavaScript 中无法正常工作

javascript - Sencha Extjs中的冒泡是什么

javascript - 如何从google maps api获取国家?

javascript - GA发送事件,返回未定义

javascript - jQuery slider : only last slider working on page with multiple sliders

javascript - JS 匹配字符串中所有出现的子字符串

javascript - 在 AngularJS 中如何取消选中单选按钮以使所有对象变为假