【问题标题】:Clean way to map an array in node.js or JavaScript在 node.js 或 JavaScript 中映射数组的简洁方法
【发布时间】:2012-04-01 13:06:37
【问题描述】:

假设我有一个函数和一个数组。我想通过将函数应用于数组中的每个条目来修改数组。该函数不直接修改值;它返回一个新值。

在伪代码中,

for (entry in array) {
    entry = function(entry);
}

我想到了几种方法来做到这一点:

for (var i = 0; i < arr.length; i++) {
    arr[i] = fn(i);
}

或者,因为我使用的是 node.js 并且内置了下划线:

arr = _.map(arr, fn);

但这两者看起来都有些笨拙。标准的“for”块感觉过于冗长,_.map 函数重新分配整个数组,因此感觉效率低下。

你会怎么做?

是的,我知道我想多了 :)

【问题讨论】:

  • 只需使用下划线功能,直到您确定这是性能问题。它非常易读和干净,所以除非它真的是一个问题,否则你的“效率低下的感觉”不应该阻止你继续处理更紧迫的问题:)
  • 完全正确!尽管如此,我只是好奇。

标签: javascript node.js underscore.js


【解决方案1】:

Array#map() 方法。

var arr = arr.map(fn);

_.map() 的实现方式大概是一样的。

【讨论】:

  • 如果您使用的是 Node.js,那么您知道您使用的是什么 JS 解释器,因此您知道 ECMAScript5 中的东西已经实现......其中包括 Array#map :)
猜你喜欢
  • 1970-01-01
  • 2023-04-03
  • 1970-01-01
  • 2013-10-18
  • 1970-01-01
  • 2023-03-07
  • 1970-01-01
  • 2011-08-04
  • 2015-06-19
相关资源
最近更新 更多