使用映射将某些函数应用到数组中



我对typescript/javascript非常陌生,所以我想用一些函数来修改数组的每个元素,比如下面的代码。但我想知道是否有一种更简洁/清晰的方法可以从变量构建我期望的数组?

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(),它本身返回一个函数,其中当前映射的item被添加到指定的固定amount(即100(:

const add = (amount) => (item) => item + amount;
console.log([1,2,3,4,5,6].map(add(100)));

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

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)

您实际上不需要创建加法函数,您可以在映射过程中直接将数字添加到当前值。

const variable  =  [1,2,3,4,5,6] 
console.log(variable.map(num => num + 100))

最新更新