Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.07.2011, 20:19
Аспирант
Отправить личное сообщение для Sundro Посмотреть профиль Найти все сообщения от Sundro
 
Регистрация: 25.05.2011
Сообщений: 46

Код внутри массива.
Вот код из книги фленагана.
<! Это анимируемый элемент div >
<div id="urgent"><h1>Внимание!</h1>Веб сервер атакован!</div>
<script>
var e = document.getElementById("urgent");
// Получаем объект Element
e.style.border = "solid black 5px";
// Рамка
e.style.padding = "50px";
// И отступ
var colors = ["white", "yellow", "orange", "red"] // Перебираемые цвета
var nextColor = 0;
// Текущая позиция перебора
// Вызывать следующую функцию с интервалом 500 миллисекунд
// для изменения цвета рамки.
setInterval(function() {
e.style.borderColor=colors[nextColor++%colors.length];
}, 500);
</script>

Все здесь вроде бы просто и понятно кроме одного момента colors[nextColor++%colors.length], объясните попдробнее пожалуйста, что здесь происходит, по идее должна добавляться переменная массива а здесь идет выполнение кода словно в цикле.
Ответить с цитированием
  #2 (permalink)  
Старый 20.07.2011, 20:32
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

Увеличиваем nextColor на один, берем остаток от деления на длину массива. Получившееся число - индекс в массиве. Просто способ такой.
Ответить с цитированием
  #3 (permalink)  
Старый 20.07.2011, 21:29
Аспирант
Отправить личное сообщение для Sundro Посмотреть профиль Найти все сообщения от Sundro
 
Регистрация: 25.05.2011
Сообщений: 46

Это я понимаю. Я просто был удивлен что в массиве "nextColor++%colors.length" , теперь понял что это равносильно доступа к элементу по colors[i] где i= nextColor++%colors.length. Теперь осталось легкое удивление с радостью от того насколько гибок язык.

Последний раз редактировалось Sundro, 20.07.2011 в 21:34.
Ответить с цитированием
  #4 (permalink)  
Старый 20.07.2011, 22:17
Аватар для 9xakep
сегодня в 12:34|Комментир
Отправить личное сообщение для 9xakep Посмотреть профиль Найти все сообщения от 9xakep
 
Регистрация: 12.04.2011
Сообщений: 1,180

а я что-то не понял =( Просто если идти последовательно:длина массива-3,nextColor-0,получается:0++(1)далее берем остаток от деления 1/3 О_о и какой тоода получится индекс массива?
Ответить с цитированием
  #5 (permalink)  
Старый 20.07.2011, 22:57
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,562

Ну во-первых 0++ - это ещё 0, а во вторых:
alert(1%3)
__________________
29375, 35
Ответить с цитированием
  #6 (permalink)  
Старый 20.07.2011, 23:09
Аватар для 9xakep
сегодня в 12:34|Комментир
Отправить личное сообщение для 9xakep Посмотреть профиль Найти все сообщения от 9xakep
 
Регистрация: 12.04.2011
Сообщений: 1,180

хм...а почему 0++ все равно 0?
А так спасибо,понял.
Ответить с цитированием
  #7 (permalink)  
Старый 20.07.2011, 23:42
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,562

i=0;
alert(i++)
alert(i)

i=0;
alert(++i)
alert(i)

http://javascript.ru/arithmetic
__________________
29375, 35
Ответить с цитированием
  #8 (permalink)  
Старый 20.07.2011, 23:56
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от 9xakep
хм...а почему 0++ все равно 0?
SyntaxError
Ответить с цитированием
  #9 (permalink)  
Старый 21.07.2011, 00:00
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,562

Сообщение от monolithed Посмотреть сообщение
SyntaxError
=) ну всем же понятно что имеется ввиду)
__________________
29375, 35
Ответить с цитированием
  #10 (permalink)  
Старый 21.07.2011, 09:35
Аватар для 9xakep
сегодня в 12:34|Комментир
Отправить личное сообщение для 9xakep Посмотреть профиль Найти все сообщения от 9xakep
 
Регистрация: 12.04.2011
Сообщений: 1,180

всем =)... Но вот если бы вы так сразу бы написали,было бы еще понятнее)
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не работает код внутри циклов DZHETIGAPA Events/DOM/Window 1 21.06.2011 01:03
Opera отдаёт неправильный код функциональных клавиш. NT Man Opera, Safari и др. 1 19.01.2010 02:45
AHAH подгружает код из локального html-файла, но код в блоке не выполняется dimiork AJAX и COMET 0 13.10.2009 18:08
Как узнать динамический код страницы? gosha13 Общие вопросы Javascript 5 27.07.2009 13:31
вставка элементов массива в текстовую форму по клику olezyk Общие вопросы Javascript 3 21.03.2009 22:01