используя карту, чтобы применить некоторую функцию в массив - PullRequest
1 голос
/ 15 апреля 2020

Я настолько новичок в машинописи / 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 ]

Ответы [ 3 ]

2 голосов
/ 15 апреля 2020

Один полуграничный подход c заключается в определении функции add(), которая сама возвращает функцию, в которой текущий отображаемый item добавляется к заданному фиксированному amount (ie 100). ):

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

console.log([1,2,3,4,5,6].map(add(100)));
1 голос
/ 15 апреля 2020

В ES6, если у вас есть одно выражение в качестве оператора возврата, вы можете просто переписать его как:

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

Также, если вы объявите variable как массив number как :

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

Тогда внутри метода .map() вам не нужно объявлять i: number, поскольку это будет автоматически выведено. Таким образом, .map() logi c станет еще более лаконичным, например:

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

Или вы можете просто сделать это без использования функции add() здесь:

variable.map(i => 100 + i)
1 голос
/ 15 апреля 2020

Вам не нужно создавать функцию добавления, вы можете напрямую добавить число к текущему значению во время отображения.

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

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