Did he ever return? No, he never returned, And his fate is still unlearned, He may ride forever ‘neath the streets of Boston, He’s the man who never returned. “Charlie on the M.T.A.”, 1949 1. Замыкания Одна из удобных возможностей современных языков программирования – вложенные функции: def bubble(arr, comp): def swap(i, j): temp = arr[i] arr[i] = arr[j] arr[j] = temp flag = True while flag: flag = False for i…
Безумный безусловный обмен Недавно попалась мне задача иммутабельным способом поменять местами два элемента в массиве по их индексам. Задача довольно простая. Поэтому решив её разумным способом: const swap = (arr, ind1, ind2) => arr.map((e, i) => { if (i === ind1) return arr[ind2] if (i === ind2) return arr[ind1] return e })…
Определение const вводит в заблуждение, которое должно быть развеяно: const создаёт иммутабельную ссылку на объект, но это не значит, что значение нельзя будет изменить — нет, это значение может быть изменено. Следующий код не будет являться ошибкой: const foo = {}; foo.bar = 42; console.log(foo.bar); // → 42 const arr = [0, 20, 30]; arr[0] = 10; console.log(arr); // → [10, 20, 30] Читать дальше →
Привет Хабр! Есть один вопрос, с виду — не такой уж и сложный, который нередко задают разработчикам на собеседованиях. Сегодня мы его разберём и поговорим о подходах к поиску ответа. Задавая вопрос, о котором идёт речь, интервьюер предлагает рассказать о том, что выведет примерно такой код: const arr = [10, 12, 15, 21]; for (var i = 0; i < arr.length; i++) { setTimeout(function() { console.log('Index: ' + i + ', element: ' + arr[i]); }, 3000); } А вы знаете, что появится в консоли? Читать дальше →