2016-09-17 3 views
0

В моем коде я пытаюсь объединить текущий элемент из массива tmp с типами string и number. С этим сравнением я хочу напечатать на консоли результат другой, т. Е. Если это строка для печати на той же строке (целое слово), следующее слово будет на второй строке и так далее. Но если это число, то каждая цифра будет напечатана в новой строке.Как сравнить текущую переменную с текущим типом?

input number

Выходной номер

output number

Входная строка

input string

Выходная строка

Output string

HTML

<!Doctype html> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
     <meta name="viewport" content="width=device-width"> 
     <meta charset="utf-8"> 
     <title>Exercises in JS</title> 
     <script src="exercises.js"></script> 
     <body> 
     <label for="myText">Input array:</label> 
     <input type="text" id="myText"> 
     <a href="#" id="sub">Submit</a> 

     <br/> 
     <br/> 
     <label for="myText2">Input for delete:</label> 
     <input type="text" id="myText2"> 
     <a href="#" id="sub2">Submit</a> 

    </body> 

    </head> 
</html> 

Javascript

window.onload = function(){ 

inputBox =document.getElementById("myText"); 
btn = document.getElementById('sub'); 

inputBox2 = document.getElementById("myText2"); 
btn2 = document.getElementById('sub2'); 

btn.addEventListener("click",function(event){ 
    event.preventDefault(); 

    saveArr(inputBox.value); 
}); 

btn2.addEventListener("click",function(event){ 
    event.preventDefault(); 
    removeItemAndprintNewArray(inputBox.value, inputBox2.value); 
}); 

    function saveArr(arr) { 

    var rv = []; 

    for (var i = 0; i < arr.length; ++i) 
     rv[i] = arr[i]; 

     return rv; 
    } 

    function removeItemAndprintNewArray(rv, number) { 

    var tmp = [], 
    st = ""; 

     for(var index in rv){ 
      if(rv[index] !== number){ 
       tmp.push(rv[index]); 
      } 
     } 

     for (var i = 0; i < tmp.length; i++){ 
      if (typeof(tmp[i]) == "String"){ 
       st += tmp[i]; 
       console.log(st); 
      } 

      else if (typeof(tmp[i]) === "Number"){ 
       st += tmp[i]; 
       console.log(st[i]); 
      } 
     } 
    } 
} 

ответ

1

Javas cript автоматически делает разговоры типов, и если разговор невозможен, он возвращает значение NaN вместо исключения исключения. Давайте использовать его)

Небольшой пример

var arr = [12, "asd", 4]; 
arr.forEach(function(item) { 
    console.log(item - 0); 
}); 

Таким образом, вы можете проверить на NaN, не забывайте, что вы должны использовать специальную функцию IsNaN()

var arr = [12, "asd", 4]; 
arr.forEach(function(item) { 
    if(isNaN(item - 0)) { 
     //do what you want with string 
     console.log("string"); 
    }; 
    else { 
     //do what you want with Number 
     console.log("number"); 
    } 
}); 
Смежные вопросы