Несколько вопросов начинающего
Ребят помогите с вопросами!
Мне интересен вопрос с массивами. Как мне сделать чтобы из массива выводилось произвольное значение? Скажем в нем 200 строк и надо чтобы произвольно каждый раз при запросе выводилось разное значение. Возможно ли в цикле использовать еще один цикл, и если да то каким образом? Также интересно работа с текстовыми файлами. Скажем наполнения массива из txt или csv, или наоборот запись в текстовый файл. И я часто в примерах кода встречаю такое вот - ret_code а что это значит нигде не могу найти. Заранее Вам спасибо! |
Цитата:
http://javascript.ru/Math.random Цитата:
|
Вот на страницах сети нашел код, А как он работает не понимаю, объясните. В общем должен перемешивать массив:
Array.prototype.shuffle = function(b) { var i = this.length, j, t; while( i ) { j = Math.floor( ( i-- ) * Math.random() ); t = b && typeof this[i].shuffle!=='undefined' ? this[i].shuffle() : this[i]; this[i] = this[j]; this[j] = t; } return this; }; |
В этом коде элемент со случайным индексом обменивается с i-тым элементом (i меняется от this.length до 0 в цикле) по такой схеме:
C = A; A = B; B = C; /* C — промежуточная переменная Если бы просто написали A = B, B = A, то ничего бы не вышло, подумайте почему */ Если текущий элемент массива — тоже массив, то для него shuffle() вызывается рекурсивно (есс-но, перемешивая и его), если в первом аргументе вызова ф-ции указано true. Т.е.: [1,2].shuffle(); // перемешает только сам массив [ [1,2,3], [3,4] ].shuffle(true); // перемешает все подмассивы |
Цитата:
|
Я правильно понимаю это код:
var A = ["1", "2", "3", "4"]; Array.prototype.shuffle = function( b ) { var i = this.length, j, t; while( i ) { j = Math.floor( ( i-- ) * Math.random() ); t = b && typeof this[i].shuffle!=='undefined' ? this[i].shuffle() : this[i]; this[i] = this[j]; this[j] = t; } return this; }; var u = Array.prototype.shuffle(A); prompt ('Массив', u ); Выдает пустой экран. И если массив перемешивает array.shuffle(), то зачем использовать такой алгоритм? И еще выдает ошибку если я вместо Array в Array.prototype.shuffle прописываю myArray. |
Вы не понимаете, зачем эту функцию добавляют в прототип и как её вызывать, советую начать с основ, иначе так и ничего не поймёте.
A.shuffle(); |
Вот здесь показано как вызывать и описано зачем нужен прототип, прочитав начинаю понимать.
http://javascript.ru/Object/prototype А таким образом я ко всем массивам добавляю данный метод? |
И почему без добавления этого метода функция shuffle все ровно перемешивает?
|
Часовой пояс GMT +3, время: 08:39. |