Дан input.Заменить четные символы в строке на знак “?”

193
10 апреля 2017, 06:50

Использую input и кнопку для получения данных из оного. Js имею такой вот код:

function getDataFromInput() { 
  var str; 
  str = $("#msg").val(); 
  var arr; 
  arr = str.split(''); 
 
  for (var i = 0; i < arr.length; i++) { 
    if (arr[i] % 2 === 0) { 
      arr[i] = "?"; 
    } 
  } 
  print(arr); 
} 
 
function print(arr) { 
  $("#word").html(arr); 
}

Код выполняется только если вводишь в input варинаты типа : 12345678. Тогда четный символ заменяется корректно. Но если ввести что-то типа: 1223365879952. То заменяются только четные числа,а не четный символ. С буквами вообще не работает. Как исправить?

Answer 1

В строке

arr[i] % 2 берет i-е число из инпута и делит на 2, работа идет с числами, а не с индексом. именно поэтому твой код заменяет четные числа, а не символы. для работы с символами дели сам индекс i % 2

Но в ответе выше уже дано решение красивее)

Answer 2
for (var i = 0; i < arr.length; i++) {
  if (arr[i] % 2 !== 0) {} else {
for (var i=0; i<arr.length; i+=2) {
Answer 3

Итак! Финальный вариант кода,которые заменяет именно четный по счету символ в строке,будь она представлена числами,или буквами выглядит так:

function getDataFromInput() { 
  var str; 
  str = $("#msg").val(); 
  var arr; 
  arr = str.split(''); 
 
  for (var i = 0; i < arr.length; i++) { 
    if (i % 2 !== 0) { 
      arr[i] = "?"; 
    } 
  } 
  print(arr); 
} 
 
function print(arr) { 
  $("#word").html(arr); 
}

Благодарю за помощь!

READ ALSO
как запретить редирект из iframe

как запретить редирект из iframe

Подскажите, пожалуйста

292
Предзагрузка изображений средствами JavaScript

Предзагрузка изображений средствами JavaScript

Для игры нужно подгрузить заранее в районе 12 изображений, причем эти изображения могут варьироваться от случая к случаюТо есть сейчас мне...

274
Нужен скрипт который при нажатии на блок с одним классом закроет другой [требует правки]

Нужен скрипт который при нажатии на блок с одним классом закроет другой [требует правки]

Ситуация такая: есть слайдер, в котором есть кнопка, после нажатия на нее должен скрываться блок с другим классом, который вне слайдераПомогите...

198
Слайдер Swiper не работает на сенсорных экранах

Слайдер Swiper не работает на сенсорных экранах

На десктопах всё отлично работает, но на сенсорных экранах нетПодключал так:

285