2012-05-07 10 views
-1

objectをカンマを区切り文字として使用して分割しようとしています。私は分割することがあることを知っています。なぜなら、私自身がそれを出力すると...(ループ上で)1,1などの数字が正常に表示されるからです。jQuery - Uncaught TypeError:オブジェクト0,0にメソッド 'split'がありません - オブジェクト上でsplit()を試みています

ここにJSFiddleがあります。 http://jsfiddle.net/weka/5Xtwj/

JavaScriptの最後の2行を削除すると、配列のXを取得したくないため正しく動作します。

var getX = path[index].split(","); 
$("#debug").append("X: " + getX[0]); 

PS - それは、外部ライブラリとしてこのpathfinding scriptを使用しています。しかし、それは問題ではありません。

+3

は、あなたの質問にそんなに間違ってあります...何もあなたのjsfiddleコードでやりたいのですか? – kay

+0

申し訳ありませんが、配列内のオブジェクトを分割することができます。愚かな質問をして申し訳ありません。 – nn2

答えて

2

あなたは、文字列のみでsplitを使用することができます。
あなたは、次のコードでX値を取得できます。

sliceを使用する:

var getX = path[index].slice(0); 

または:

var getX = path[index][0]; 
+1

誰もがここでw3schoolsを嫌うことに注意してください。誰かが気付く前に、[link](https://developer.mozilla.org/ja/JavaScript/Reference/Global_Objects/String/split)を変更する方が良いでしょう。 ;-) – kay

+0

うーん、私はそれについて知らなかったsry。 –

1

エラーメッセージは、オブジェクト[別名アレイ]であり、それは文字列であるようにあなたが行動している

Object 0,0 has no method 'split' 

を示しています。なぜあなたはそれを分割する必要がありますか?それを参照してください。

var first = path[index][0]; 
1

splitは、文字列でのみ使用できます。それぞれpath[index]ではなく、という文字列です。これは配列です(コンソールの出力を見てください)。アレイが印刷用の文字列にキャストされているため、0,0が表示されています。

ソリューション:代わりのpath[index].split(",")[0]を使用して、ちょうどpath[index][0]を使用しています。あなたはこのエラーを取得している理由ですので、あなたは、それが配列の配列だあなたはconsole.logで見ることができるよう

enter image description here

1

path[index]の値が文字列ではありません、それはですアレイ。

分割することはできません。そうする必要はありません。あなたはすぐにそれを使用することができます。

var getX = path[index]; 
$("#debug").append("X: " + getX[0] + "\n"); 

http://jsfiddle.net/Guffa/5Xtwj/1/

+0

あなたはJavaScriptのために合理的すぎると考えています。 'typeof'は配列の 'object'を返します。彼らは実際には実際の配列です;-)しかし、残りの答えは+1です。 –

+1

@cliffsofinsanity:ああ、そうです。 'path [index] .constructor'は実際にはArrayコンストラクタを返します。 :)私はそれを修正しました。 – Guffa

関連する問題