2015-12-15 2 views
2

Я делал некоторое чтение о es2015, пытаясь некоторые из примеров на синтаксисе стрелки, когда я наткнулся на этот код:несколько переменных карта Javascript() обратного вызова

var odds = evens.map(v => v + 1);//I understand 
var nums = evens.map((v,i) => v + i);//I don't understand 

с evens инициализируется [0,2,4,6] я [1,3,5,7] от odds, который я понимаю.

Однако я не понимаю результат второго выражения [0,3,6,9]. По сути, я не понимаю, какие значения присваиваются переменной i во втором примере. Может ли кто-нибудь пролить свет на это?

+0

Прочитайте документацию для 'Array # map', в частности часть о том, какие параметры передаются в обратный вызов. –

ответ

4

Array.prototype.map функция будет вызывать функцию переданную ей с тремя параметрами, как видно here

  • текущий элемент
  • индекс текущего элемента и
  • сам фактический массив

Так , в вашем случае v - текущий элемент, а i - это индекс элемента в массиве.

Когда evens инициализирован [0, 2, 4, 6], он просто добавляет элемент с соответствующим индексом и возвращает новый массив.

Смежные вопросы