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

问题描述 投票:0回答:3

我对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 ]
javascript typescript typescript2.0 typescript1.8
3个回答
1
投票

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

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

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

0
投票

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

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

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

0
投票

在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)
© www.soinside.com 2019 - 2024. All rights reserved.