Помогите сократить код
Привет всем!) Прошу помочь с кодом (сократить его). :write:
Думаю, что проще все будет выглядеть с помощью счетчика... Код рабочий, но выглядет страшно и совсем безграмотно :(
function positive() {
if ($("#term1").val() == 1){
positiveUp = [ 0, tcoSavings()];
return positiveUp
} else if ($("#term1").val() == 2) {
positiveUp = [ 0, tcoSavings(), tcoSavings()];
return positiveUp
} else if ($("#term1").val() == 3) {
positiveUp = [ 0, tcoSavings(), tcoSavings(), tcoSavings()];
return positiveUp
} else if ($("#term1").val() == 4) {
positiveUp = [ 0, tcoSavings(), tcoSavings(), tcoSavings(), tcoSavings()];
return positiveUp
} else if ($("#term1").val() == 5) {
positiveUp = [ 0, tcoSavings(), tcoSavings(), tcoSavings(), tcoSavings(),
tcoSavings()];
return positiveUp
} else if ($("#term1").val() == 6) {
positiveUp = [ 0, tcoSavings(), tcoSavings(), tcoSavings(), tcoSavings(),
tcoSavings(), tcoSavings()];
return positiveUp
} else if ($("#term1").val() == 7) {
positiveUp = [ 0, tcoSavings(), tcoSavings(), tcoSavings(), tcoSavings(),
tcoSavings(), tcoSavings(), tcoSavings()];
return positiveUp
} else if ($("#term1").val() == 8) {
positiveUp = [ 0, tcoSavings(), tcoSavings(), tcoSavings(), tcoSavings(),
tcoSavings(), tcoSavings(), tcoSavings(), tcoSavings()];
return positiveUp
} else if ($("#term1").val() == 9) {
positiveUp = [ 0, tcoSavings(), tcoSavings(), tcoSavings(), tcoSavings(),
tcoSavings(), tcoSavings(), tcoSavings(), tcoSavings(), tcoSavings()];
return positiveUp
} else if ($("#term1").val() == 10) {
positiveUp = [ 0, tcoSavings(), tcoSavings(), tcoSavings(), tcoSavings(),
tcoSavings(), tcoSavings(), tcoSavings(), tcoSavings(), tcoSavings(), tcoSavings()];
return positiveUp
}
};
Буду признателен за помощь ;) |
function positive() {
return [ 0, tcoSavings($("#term1").val())];
};
|
Что-то странный совет... такое не работает и не будет работать
|
Я не знаю что там в функции tcoSavings(), но вместо 10 вызова просто ему даем цифру 10, чтобы вернул что-то 10 раз, то есть немного там тоже нужно изменить
|
примерно так
tcoSavings = function ( ) { // я не знаю вашу функцию, по этому просто "заглушка"
return 1
}
function positive() {
// var data = $("#term1").val(), // кешируем значение, так как зачем нам лишнее обращение к DOM’у?
var data = 10, // чисто для примера
arr = [0];
if(typeof data === 'number') { // проверка на цифру, наверное это ненужно, но всеже
for (; data; data--) {
arr.push(tcoSavings())
}
return arr
}
}
alert(positive())
|
Блин, я в шоке от своего говнокода
![]() ОН РАБОТАЕТ))) |
От своего или моего? :D
|
Цитата:
Цитата:
|
пока нет, но вроде уже сам разбираться начал)))
tcoSavings() - это число, которое подставляется в массив. допустим, при выборе ($("#term1").val() == 7), должен выводиться массив positiveUp = [ 0, 5000, 5000, 5000, 5000, 5000, 5000, 5000]; |
nikto93i7,
вам же давали решение для таких случаев http://javascript.ru/forum/jquery/57...tml#post384621 |
Да рони, но я что-то не очень понял решение... Вот и решил еще раз спросить. Может кто-то легче способ напишет))
|
nikto93i7,
решение KosBeg, проще, попробуй воспользоваться им |
Вот сейчас и пробую)) Спасибо за ответы!)
и кстати, может кто посоветовать как лучше учить js? книги, видео-уроки, сайты... только если можно на русском ;) |
Цитата:
https://developer.mozilla.org/ru/docs/Web/JavaScript |
| Часовой пояс GMT +3, время: 10:24. |