使用地图将一些功能应用到数组中

using a map to apply some function into array

我是 typescript/javascript 的新手,我想用一些函数修改数组的每个元素,比如下面的代码。但我想知道是否有更多 concise/clear 方法从变量构建我期望的数组?

const variable  =  [1,2,3,4,5,6] 
function add(a: number, b: number): number {
  return a + b;
}
console.log(variable.map((i: number) => {return add(100, i)})) # =>[ 101, 102, 103, 104, 105, 106 ]

你真的不需要创建一个add函数,你可以在映射时直接将数字添加到当前值。

const variable  =  [1,2,3,4,5,6] 

console.log(variable.map(num => num + 100))

一种半通用的方法是定义一个函数 add(),它本身 returns 一个函数,其中映射的当前 item 被添加到固定的 amount指定(即100):

const add = (amount) => (item) => item + amount;

console.log([1,2,3,4,5,6].map(add(100)));

在 ES6 中,如果你有单个表达式作为 return 语句,那么你可以简单地将其重写为:

variable.map((i: number) => add(100, i))

此外,如果您将 variable 声明为 number 的数组,例如:

const variable: number[]  =  [1,2,3,4,5,6] 

然后在 .map() 方法中你不需要声明 i: number 因为它会被自动推断出来。因此,.map() 逻辑将变得更加简洁,如:

variable.map(i => add(100, i))

或者,您可以在此处不使用 add() 函数而直接执行此操作:

variable.map(i => 100 + i)