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, время: 23:15. |