使用地图将一些功能应用到数组中
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)
我是 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)