danik.js,
Цитата:
|
Не стал новую тему заводить...
Есть вот такой вот массив: var krug = ["Фа","До","Соль","Ре","Ля","Ми","Си"]; Есть форма,в которой задается количество знаков и два переключателя- диез и бемоль. Как в зависимости от состояния переключателя вывести нужное количество нот? Например,переключатель стоит "диез" и 2 знака, Значит выводим сначала массива, то есть "Фа", "До". Если же положение "бемоль" и количество стоит тоже 2, то выводим"Си", "Ми". Последовательность именно такая. |
sotik,
:-? function get(n,d) { var krug = ["Фа","До","Соль","Ре","Ля","Ми","Си"]; d == "бемоль" && krug.reverse(); return krug.splice(0, n) } alert(get(2)); alert(get(2, "бемоль")); |
Спасибо большое.
Можно пояснить 4 и 5 строчку? Как я понимаю: Если d=="bemol", то переворачиваем массив,так? просто для меня несколько необычная форма условия. А в 5 сроке соединяем вроде как нужное кол-во элементов массива? Как грамотно сказать? |
sotik,
Цитата:
|
Хорошо.А как вернуть массив в исходное состояние в случае его переворачивания(после return конечно же) ?
|
Цитата:
|
Потому что в другой функции код работает с оригинальным массивом:
//Соответствие с тональностью if(radios[2].value=="Не соотносить с апликатором"){ if(k>0){ if(krug.indexOf(alt)<k && radios[0].checked)valton++; if(krug.indexOf(alt)>6-k && radios[1].checked)valton--; } } Переменная alt - это элемент массива; Переменная k - количество знаков. |
sotik,
и как ваш код связан с моим? |
Очень просто.
В нашу функцию мы попадаем из формы когда меняем знаки,а из нее в функцию обработки ноты: Если знаки не меняются,то основная функция(обработки ноты) работает с исходным массивом krug. var id = "e"; document.onclick = function( e ){ //Соответствие с тональностью if(radios[2].value=="Не соотносить с апликатором"){ if(k>0){ if(krug.indexOf(alt)<k && radios[0].checked)valton++; if(krug.indexOf(alt)>6-k && radios[1].checked)valton--; } } } //функция обработки знаков ... document.getElementById(id).click(); |
Часовой пояс GMT +3, время: 02:50. |