0
["57300","730","17300","17330","17340","70","220","320","380","420","340","130","50","280","360","550","43110","44340","400","620","440","20","72850"]

文字列の配列がjavascript関数に戻され、JavaScript関数が処理を進めて、文字列の配列に分割します(区切り文字として「、」を指定したsplit関数を使用)。

ここでの問題は、その後のそれぞれを整数に変換する必要があることです。簡単そうですね。

だから私は次のことをします:

$.each(data, function(i, item)

その上に。アイテムをコンソールログに記録すると、「57300」、「730」などであることがわかります。これで問題ありません。しかし、私がこれを行おうとすると:

var number = parseInt(item, 10);

そしてコンソールログは何番ですか...そのNaN(引用符なしで57300、730などであるべきではありませんか?)。いくつかの隠された文字が私をいじって、parseIntを壊していませんか?

4

2 に答える 2

2

あなたの投稿によると、あなたは文字列をコンマで分割しています。これは、数字の周りに引用符を残していることを意味します。これは、parseInt( "\" 573007 \ "")と同等の処理を行っていることを意味します。parseIntを呼び出す前に、引用符を取り除く必要があります。

于 2012-11-28T17:54:37.490 に答える
2

あなたの最初の文字列は以下のようなものだと思います、

var result = '"57300","730","17300","17330"';

区切り文字として分割しているので,、次のようになります。

data = ["\"57300\"","\"730\"","\"17300\"","\"17330\""]; 

基本的に引用符付きの文字列..そして、を使用して解析する場合parseInt

parseInt("\"57300\"", 10); //throws NaN

解決:

代わりに、関数を使用する[]代わりに、そのデータをラップすることができます。下記参照、splitparseJSON

var result = '"57300","730","17300","17330"';

result = '[' + result + ']';

var data = $.parseJSON(result);

$.each(data, function (i, item) {
    var number = parseInt(item, 10);
    alert(number);
});

デモ:http: //jsfiddle.net/mYysX/

于 2012-11-28T18:12:21.437 に答える