2016-12-14 6 views
2

私のプロジェクトでは、外部サーバーからデータをダウンロードしています。このデータは配列形式です。時にはこの配列には1つの値しかありません。たとえば、次のようにJavaScriptは文字列を文字の配列として扱います - それを変更するには?

My array

あなたはこのケースで見ることができるように、私は5つのアレイで構成される配列を、持っています。興味のあるデータはmyArray[1][0]です。ご覧のとおり、この配列には1つの値しかありません: "20161205022"です。

さて、いつも私が唯一の1の値を取得していないため、私はこれをやっている:

for (var i = 0 ; i < myArray[1][0].length ; i++) { 
    console.log(myArray[1][0][i]); 
} 

私は、コンソールで「20161205022」を見ることを期待したいが、その代わりに、私は以下を参照してください。

2 
0 
1 
6 
1 
2 
0 
5 
0 
2 
2 

どうしてですか?奇妙なことは、myArray[1][0]にさらに多くの値(["25"、 "35"、 "64"、 "58"]など)があるときです。

+0

を参照してくださいする必要がありますか。? –

+0

myArray [1] [0] –

答えて

3

JavaScript文字列にlengthというプロパティがあり、インデックスに[]を使用することがサポートされているためです。

ソースが文字列か配列かを検出する必要があります。 あなたは、あなたが「ない」場合の配列を持っていることをさらに確認したい場合は、古いブラウザ上polyfillable/shimmableで新しい(っぽい)Array.isArrayを(使用することができtypeof

if (typeof myArray[1][0] === "string") { 
    // It's a string 
} else { 
    // It isn't 
} 

を使用することができます)。


それとも、ソースまたはある人へのフィードバックを送信する機能の上に任意のコントロールを持っている場合、それは一貫ですので、ソースを修正するためにそれらを教えて/ソースを修正します。

+0

を印刷しているときに取得しているものを投稿できますか?月曜日にあなたの解決策をチェックします。残念ながら私はこれを先に見ることはできません。私はこれをテストするときに私はフィードバックを与えます。ありがとう – Loreno

0

そう、おそらくあなたは外側の配列の配列や文字列を持つことができ、あなたの問題が解決されます。この例の男...

var myArray =new Array(5); 
 
myArray[1]= new Array(1); 
 
    myArray[1][0]=20161205022; 
 

 
    var div1 = document.getElementById('ht'); 
 
    function myfun(){ 
 
    for (var i = 0 ; i < myArray[1].length ; i++) { 
 
     div1.innerHTML+=myArray[1][i]+"<hr>"; 
 
    } 
 
    } 
 

 
myfun();
<div id="ht"></div>

+0

あなたの問題のために100%働いている解決策.... –

+0

ちょうどこれを一度学ぶ.. –

関連する問題