for проходит по массиву, и ничего не возвращает. map проходит по массиву, и возвращает массив элементов из return
UPD: Если вы в forEach пишите return, но вы не выходите из функции almostIncreasingSequence, вы типа делаете continue для цикла, и он продолжается, и в итоге функция возвращает return true
Вот примеры:
// Вернет 0, цикл завершится
function testFor() {
for(var i = 0; i < 10; i++) {
return i;
}
}
// Вернет 2,4,6, т.к. map создает новый массив на основе результатов функции для каждого элемента массива
function testMap() {
return [1,2,3].map(function(el) { return el*2; });
}
// Не вернет ничего. переданная функция будет вызвана для каждого элемента массива.
// return просто выходит из цикла.
function testForEach() {
return [1,2,3].forEach(function(el) { return el; });
}