проблема JavaScript с неявно типизированными переменными - PullRequest
1 голос
/ 29 августа 2011

Прости этот вопрос новичка (новичок в Javascript!).

На html-странице у меня есть набор изображений с именем и номером: img1 img2 img3 ... img12 ... И есть функция JS, где мне нужно итерировать от (скажем) img5 до последнего img.

Если я напишу это:

function iterateImg(objImgID) {var imgNum = objImgID.replace("img","");
    for (i=imgNum+1;i<20;i++)
    .../...

Переменная «i» обрабатывается как строка, и i + 1 получает значение «51», если идентификатор переданного объекта равен img5.

Конечно, я все еще могу выполнять итерации от 1 до n и выполнять желаемую задачу, только когда значение i достигает 6, но это было бы ужасным решением.

Как я могу это исправить, пожалуйста? Как я могу создать переменную, которая будет обрабатываться как целое число, прежде чем я буду использовать ее в качестве начального числа? Кроме того, что бы вы порекомендовали в качестве лучшей практики?

Ответы [ 4 ]

1 голос
/ 29 августа 2011

Используйте parseInt для преобразования строки в число

var imgNum = parseInt(objImgID.replace("img", ""));
1 голос
/ 29 августа 2011
var imgNum = Number(objImgID.replace("img",""));

Это сделает это.

Или еще лучше (потому что я люблю регулярные выражения)

var imgNum = Number(objImgID.match(/[0-9]+/));
0 голосов
/ 29 августа 2011
var imgNum = parseInt(objImgID.replace("img",""), 10);

Теперь, когда вы сделаете var i=imgNum+1, будет выполнено добавление 2 целых чисел.

0 голосов
/ 29 августа 2011

Есть несколько способов заставить JavaScript преобразовать его в число

  • parseInt(x, 10) - 10 является основанием числа
  • x - 0 - вычитание работает только для чисел
  • x * 1 - умножение также
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...