как в str.map(word,index) index понимает,что является индексом и привязан к номеру буквы в слове,а word понимает,что он - массив,в котором записано это слово.
Ведь это никак не описано в функции!
var new_array = arr.map(function callback(currentValue, index, array) {
// Возвращает элемент для new_array
}[, thisArg])