Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.08.2015, 13:43
Аспирант
Отправить личное сообщение для nikto93i7 Посмотреть профиль Найти все сообщения от nikto93i7
 
Регистрация: 06.07.2015
Сообщений: 50

Помогите сократить код
Привет всем!) Прошу помочь с кодом (сократить его).
Думаю, что проще все будет выглядеть с помощью счетчика...

Код рабочий, но выглядет страшно и совсем безграмотно
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
    }
};


Буду признателен за помощь
Ответить с цитированием
  #2 (permalink)  
Старый 23.08.2015, 13:59
ild ild вне форума
Аспирант
Отправить личное сообщение для ild Посмотреть профиль Найти все сообщения от ild
 
Регистрация: 27.02.2012
Сообщений: 67

function positive() {
	return [ 0, tcoSavings($("#term1").val())];
};

Последний раз редактировалось ild, 23.08.2015 в 14:41.
Ответить с цитированием
  #3 (permalink)  
Старый 23.08.2015, 14:06
Аспирант
Отправить личное сообщение для nikto93i7 Посмотреть профиль Найти все сообщения от nikto93i7
 
Регистрация: 06.07.2015
Сообщений: 50

Что-то странный совет... такое не работает и не будет работать
Ответить с цитированием
  #4 (permalink)  
Старый 23.08.2015, 14:16
ild ild вне форума
Аспирант
Отправить личное сообщение для ild Посмотреть профиль Найти все сообщения от ild
 
Регистрация: 27.02.2012
Сообщений: 67

Я не знаю что там в функции tcoSavings(), но вместо 10 вызова просто ему даем цифру 10, чтобы вернул что-то 10 раз, то есть немного там тоже нужно изменить
Ответить с цитированием
  #5 (permalink)  
Старый 23.08.2015, 14:18
Аватар для KosBeg
Профессор
Отправить личное сообщение для KosBeg Посмотреть профиль Найти все сообщения от KosBeg
 
Регистрация: 22.05.2015
Сообщений: 384

примерно так
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())
Ответить с цитированием
  #6 (permalink)  
Старый 23.08.2015, 14:23
Аватар для KosBeg
Профессор
Отправить личное сообщение для KosBeg Посмотреть профиль Найти все сообщения от KosBeg
 
Регистрация: 22.05.2015
Сообщений: 384

Блин, я в шоке от своего говнокода
ОН РАБОТАЕТ)))
Ответить с цитированием
  #7 (permalink)  
Старый 23.08.2015, 14:33
Аспирант
Отправить личное сообщение для nikto93i7 Посмотреть профиль Найти все сообщения от nikto93i7
 
Регистрация: 06.07.2015
Сообщений: 50

От своего или моего?
Ответить с цитированием
  #8 (permalink)  
Старый 23.08.2015, 14:37
Аватар для KosBeg
Профессор
Отправить личное сообщение для KosBeg Посмотреть профиль Найти все сообщения от KosBeg
 
Регистрация: 22.05.2015
Сообщений: 384

Сообщение от nikto93i7
От своего или моего?
Сообщение от KosBeg
я в шоке от своего говнокода
а хоть так как нужно работает?
Ответить с цитированием
  #9 (permalink)  
Старый 23.08.2015, 14:50
Аспирант
Отправить личное сообщение для nikto93i7 Посмотреть профиль Найти все сообщения от nikto93i7
 
Регистрация: 06.07.2015
Сообщений: 50

пока нет, но вроде уже сам разбираться начал)))
tcoSavings() - это число, которое подставляется в массив.
допустим, при выборе ($("#term1").val() == 7), должен выводиться массив positiveUp = [ 0, 5000, 5000, 5000, 5000, 5000, 5000, 5000];
Ответить с цитированием
  #10 (permalink)  
Старый 23.08.2015, 15:05
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

nikto93i7,
вам же давали решение для таких случаев
Замена значения в массиве
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите сократить код! tarkasha Общие вопросы Javascript 5 23.01.2015 10:21
Помогите изменить код формы GarMan jQuery 0 28.05.2014 22:51
Выпадающие списки. Помогите подправить код. cardsmoney Элементы интерфейса 6 18.02.2011 16:20
Код калькулятора на JS. помогите с ошибкой! kirill.psl Общие вопросы Javascript 9 26.08.2010 11:38
Помогите оптимизировать код. pizzZ jQuery 5 17.11.2009 23:52