2017-10-11 18 views
1

入力タグに入力された数値を配列に渡そうとしています。入力した数字はスペースで区切られます。Javascript/Jquery:入力タグに入力された数値をスペースで区切って配列に渡します。

var arr = []; 
$(function(){ 

    var input = $('input').val(), 
     button = $('button'); 
    button.on('click',function{ 
     arr = input.split(' '); 
     console.log(arr); 
    }); 

}); 

サンプル入力:1 4 3 5 65 145 6

所望の出力:分割後arr = [1,4 3,5,65,145,6];

答えて

1

あなたがstringsの配列を取得します。あなたは、分割後にのみ、Array#mapparseFloat関数を使用して数値に解析します。

また、ノートもあります。 spacesで入力を開始または終了した場合は、配列項目にNaNも与えられます。したがって、最後にnot NaNの値を持つ配列をフィルタリングしました。

var arr = []; 
 

 
$('#btn').on('click', function() { 
 
    var values = $('#inp').val(); 
 
    arr = values.split(' ').map(val => parseFloat(val)).filter(val => !Number.isNaN(val)); 
 
    console.log(arr); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input id="inp" > 
 
<button id="btn">Get values</button>

+0

私はマップを(学ぶ必要があると思います)、その後、あなたの助けに感謝! –

+0

@PraveenBisht –

0

あなたは

var outputArr = input.split(" ").map(function(item){ return Number(item) }); 

または

var outputArr = input.split(" ").map(function(item){ return +item }); 

または

var outputArr = input.split(" ").map(function(item){ return parseInt(item) }); 
ほとんどがあります

文字列itemを配列内で繰り返し、番号に変換する必要があります。

+0

文字列を数値に変換するもう一つの方法は、文字列の前に '+'を置くことです: 'function(item){return + item; } ' – samAlvin

+0

@samAlvinはいでもうまくいきます。 – gurvinder372

1
var input = '1 4 3 5 65 145 6'; 
var arr = input.split(' ').map(Number); 

結果:

ARR = [1、4、3、5、65、145、6]

関連する問題