2014-03-27 1 views
0

Я получил этот маленький фрагмент кода, который используется для карт Google.
Чтобы «связать» маркеры с фильтром, есть счет.
Каждый маркер имеет реквизит, который содержит номер, чтобы он мог фильтровать.Подсчет в javascript от math.pow

в тот момент, когда используется math.pow.
Вы понимаете, что опоры для маркеров идут от 1-2-4-8-16-32 до тех пор, пока вы не получите миллионы и миллиарды. Я бы хотел изменить код, чтобы он сделал 1 + 1 = 2 1 + 2 = 3 4, 5, 6, 7 и так далее, поэтому мне не нужно заполнять эти ОГРОМНЫЕ номера.

Код здесь:

$.each(sizer,function(i,b){ 
    props+=($(b).is(':checked'))?Math.pow(2,i):0; 
}); 
+6

Просить людей «изменить его, чтобы заставить его работать» не достанется вам далеко. Почему бы вам не попробовать изменить его самостоятельно, и если у вас возникнут некоторые проблемы, отправьте эти проблемы, и мы сможем вам помочь. Вообще говоря, люди не любят помогать тем, кто не поможет. – MarsAtomic

+0

Я пробовал. как я сказал. мой java не так хорош, поэтому я спрашиваю. Возможно, вы уже ответили на мой вопрос в то время, когда вы набираете текст. –

+1

Возможно, вам стоит опубликовать то, что вы пробовали, и у вас, возможно, уже был ваш ответ, а не на время, пытаясь заставить его выглядеть так, будто я виноват, потому что вам не понравился мой комментарий или я чувствую, что я как-то вам обязан. Вы расстроены. Хорошо. Принимая ваши разочарования в отношении людей, которые уже помогают вам получить ответ, это не нормально. – MarsAtomic

ответ

0

Если я правильно понимаю, что вы хотите, это:

$.each(sizer,function(i,b){ 
    props+=($(b).is(':checked')) ? i : 0; 
}); 

Есть две вещи, которые для вас, чтобы понять:

  • синтаксис тернарного оператора выглядит следующим образом: condition ? expr1 : expr2. В основном это однострочный оператор if/else - если условие истинно - выполните первое выражение, иначе выполните второе выражение. Вы можете узнать больше об этом на MDN docs

  • Math.pow - это встроенная функция javascript, которая принимает два числа - число и мощность этого номера. Таким образом, Math.pow (2, i) означает 2 для мощности i. Это то, о чем вы, наверное, догадались.

Очень сложно помочь больше, потому что у меня нет остального кода в моем распоряжении. Например, как я могу узнать, что такое значения sizer? Etc ...

+0

Спасибо. Я попробую это завтра. Забавно, как мне помогает репутация 132 человек, а репутация 1567 человек начинает спорить! Еще раз спасибо ! Постараюсь ответить, как только я попробовал, и это сработало :) –

+0

Значения 1 2 3 4 5 6 7 8 9 10 и так далее. math.pow делает 1^1 1^2 1^2 1^3 где 1 2 3 is I. Я собираюсь протестировать ваш метод сейчас. –

+0

Ответ на мой вопрос - ваш.Но это создает проблему, которую я теперь понимаю и не могу исправить. Мне нужно будет использовать метод math.pow. Спасибо, что ответили! –