Помогите сократить код
Привет всем!) Прошу помочь с кодом (сократить его). :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, время: 13:38. |