Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.12.2010, 14:01
Новичок на форуме
Отправить личное сообщение для vitaver Посмотреть профиль Найти все сообщения от vitaver
 
Регистрация: 23.12.2010
Сообщений: 6

Несколько вопросов начинающего
Ребят помогите с вопросами!
Мне интересен вопрос с массивами. Как мне сделать чтобы из массива выводилось произвольное значение? Скажем в нем 200 строк и надо чтобы произвольно каждый раз при запросе выводилось разное значение.
Возможно ли в цикле использовать еще один цикл, и если да то каким образом?
Также интересно работа с текстовыми файлами. Скажем наполнения массива из txt или csv, или наоборот запись в текстовый файл.
И я часто в примерах кода встречаю такое вот - ret_code а что это значит нигде не могу найти.
Заранее Вам спасибо!
Ответить с цитированием
  #2 (permalink)  
Старый 23.12.2010, 15:41
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,124

Сообщение от vitaver
Как мне сделать чтобы из массива выводилось произвольное значение?
Генерить индекс в ределах о 0 до длины массива -1, потом выводить элемент с этим индексом...
http://javascript.ru/Math.random

Сообщение от vitaver
Также интересно работа с текстовыми файлами.
С файлами работать - прерогатива сервеного языка, не клиентского...
Ответить с цитированием
  #3 (permalink)  
Старый 23.12.2010, 18:41
Новичок на форуме
Отправить личное сообщение для vitaver Посмотреть профиль Найти все сообщения от vitaver
 
Регистрация: 23.12.2010
Сообщений: 6

Вот на страницах сети нашел код, А как он работает не понимаю, объясните. В общем должен перемешивать массив:
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;
};
Ответить с цитированием
  #4 (permalink)  
Старый 23.12.2010, 19:10
Профессор
Отправить личное сообщение для exec Посмотреть профиль Найти все сообщения от exec
 
Регистрация: 21.01.2010
Сообщений: 1,022

В этом коде элемент со случайным индексом обменивается с 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); // перемешает все подмассивы

Последний раз редактировалось exec, 23.12.2010 в 19:53.
Ответить с цитированием
  #5 (permalink)  
Старый 23.12.2010, 19:28
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

Сообщение от vitaver
Также интересно работа с текстовыми файлами. Скажем наполнения массива из txt или csv, или наоборот запись в текстовый файл.
Получаете файл XHR запросом (см. AJAX) и делаете с его содержимым то, что хочется.
Ответить с цитированием
  #6 (permalink)  
Старый 23.12.2010, 19:53
Новичок на форуме
Отправить личное сообщение для vitaver Посмотреть профиль Найти все сообщения от vitaver
 
Регистрация: 23.12.2010
Сообщений: 6

Я правильно понимаю это код:
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.
Ответить с цитированием
  #7 (permalink)  
Старый 23.12.2010, 19:59
Профессор
Отправить личное сообщение для exec Посмотреть профиль Найти все сообщения от exec
 
Регистрация: 21.01.2010
Сообщений: 1,022

Вы не понимаете, зачем эту функцию добавляют в прототип и как её вызывать, советую начать с основ, иначе так и ничего не поймёте.

A.shuffle();
Ответить с цитированием
  #8 (permalink)  
Старый 23.12.2010, 20:18
Новичок на форуме
Отправить личное сообщение для vitaver Посмотреть профиль Найти все сообщения от vitaver
 
Регистрация: 23.12.2010
Сообщений: 6

Вот здесь показано как вызывать и описано зачем нужен прототип, прочитав начинаю понимать.
http://javascript.ru/Object/prototype
А таким образом я ко всем массивам добавляю данный метод?
Ответить с цитированием
  #9 (permalink)  
Старый 23.12.2010, 20:22
Новичок на форуме
Отправить личное сообщение для vitaver Посмотреть профиль Найти все сообщения от vitaver
 
Регистрация: 23.12.2010
Сообщений: 6

И почему без добавления этого метода функция shuffle все ровно перемешивает?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Несколько вопросов про jquery от новичка Delfi jQuery 3 24.11.2010 10:55
Несколько вопросов касательно JavaScript(замыкания, классы..) r1der Общие вопросы Javascript 6 13.11.2010 02:51
Несколько одинаковых таблиц. Обращение к отдельным элементам в них. zaytsewa Элементы интерфейса 7 11.11.2010 09:08
Несколько вопросов про таймер ВэйДлин Общие вопросы Javascript 19 06.08.2010 01:16
Вопросов несколько, так что опишу их дальше=) TrooMan Javascript под браузер 25 23.03.2010 19:02