Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Миллион нубских вопросов от новичка (https://javascript.ru/forum/misc/77076-million-nubskikh-voprosov-ot-novichka.html)

laimas 25.03.2019 11:54

Цитата:

Сообщение от Nexus
Непонятно, чем хуже вариант, в котором сначала создается массив значений

Так в этом случае весь массив нужно поместить в память, и если массив большой, то это большие ее затраты. А генератор тем и ценен, что позволяет избежать этого.

Nexus 25.03.2019 12:14

Malleys, спасибо.

Nexus 25.03.2019 12:18

laimas, задача, в которой требуется создать огромный массив по определенному правилу и дальше произвести над ним какие-то манипуляции, имхо, очень специфична.
Если и нужно будет работать с таким массивом, то он, скорее всего, уже будет создан, уже находится в памяти.
Однако спасибо.

laimas 25.03.2019 12:29

Цитата:

Сообщение от Nexus
имхо, очень специфична

Ну насколько я могу судить уже по функции, об этом как раз и речь. :)

Nexus, вы же и РНР знаете, и если в JS генераторы в общем то, можно сказать, это новинка, то в РНР эта штуковина существует с версии 5.5, а это десяток лет.

Тоже самое что и в JS по сути, только без всякого тумана со звездочками. :)

Nexus 25.03.2019 12:50

laimas,
Цитата:

Сообщение от laimas
Nexus, вы же и РНР знаете, и если в JS генераторы в общем то, можно сказать, это новинка, то в РНР эта штуковина существует с версии 5.5, а это десяток лет.

С генераторами знаком.

Было интересно почему Malleys решил использовать генератор.
Так как он обладает куда бОльшими знаниями, нежели я, решил узнать причину использования генератора.
Может быть открыл бы для себя что новое)

MarkSM 26.03.2019 19:27

J0hnik

Попробовал запустисть ваш код, ответ не выводиться в обратном порядке. Я что-то делаю не так? Или ошибка в коде?

function reverseArrayInPlace2(array) {
	var j = array.length - 1;
	for (var i = 0; i < j; i++, j--) {
		[array[i], array[j]] = [array[j], array[i]];
	}
	return array;
}


reverseArrayInPlace2(arrayValue);
let arrayValue = [1, 2, 3, 4, 5, 6];
console.log(arrayValue);

рони 26.03.2019 19:47

MarkSM,

Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[html run]
... минимальный код страницы с вашей проблемой
[/html]

О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.

рони 26.03.2019 19:52

Цитата:

Сообщение от MarkSM
Я что-то делаю не так?

сначала создание массива, потом преобразование, строки n и n+1 поменяйте местами.


Часовой пояс GMT +3, время: 18:54.