![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
皆様、いつもお世話になります。
今、アクションスクリプトを独学しています。
String.prototypeに関して調べる途中
このサイトで
http://www.actionscript.org/forums/showthread.ph …
以下のようなコードを見ましたが、、、
String.prototype.split2d = function () {
tmpAr = this.split("|");
for (j=0; j<tmpAr.length; j++) {
tmpAr[j] = tmpAr[j].split(",");
}
return tmpAr
};
myString = "1,2,3,4|5,6,7,8|9,10,11,12";
tmp = myString.split2d();
trace(tmpAr[0][0]);
split2dはなんですか?
検索して見ても当たる情報もないし、、何方か教えていただきませんか?
あと、String.prototype.split2d = function はいつよく使われますか?
ぜひ、よろしくお願いいたします。
No.3ベストアンサー
- 回答日時:
ご質問のスクリプトですが,
普通の書き方にすると次のようになります。
-------------------------------
split2d = function (str) {
tmpAr = str.split("|");
for (j=0; j<tmpAr.length; j++) {
tmpAr[j] = tmpAr[j].split(",");
}
return tmpAr;
};
myString = "1,2,3,4|5,6,7,8|9,10,11,12";
tmp = split2d(myString);
trace(tmp[0][0]);
-------------------------------
↓型指定を入れた方がわかり易い?↓
-------------------------------
split2d = function (str:String):Array {
var tmpAr:Array = str.split("|");
for (var j:Number=0; j<tmpAr.length; j++) {
tmpAr[j] = tmpAr[j].split(",");
}
return tmpAr;
};
var myString:String = "1,2,3,4|5,6,7,8|9,10,11,12";
var tmp:Array = split2d(myString);
trace(tmp[0][0]);
-------------------------------
上が ActionScript 1.0 風で
下が ActionScript 2.0 風です。
これを
あえて普通ではない,
Stringクラスの拡張メソッドもどき的な書き方をすると,
ご質問のようなう書き方もできますよ。
ということでしょう。
普通は上で書いたようにするので,
ご質問のスクリプト自体には全く有り難みを感じませんが,
ご質問の "スクリプト自体が重要" なのではなく,
このような書き方をすると何かの時に使えるかもしれませんね。
という "スクリプトの可能性" を書いているのだと思います。
> split2dはなんですか?
作者が勝手に作った(命名した),メソッド名(匿名関数参照の変数名)です。
以下は,#2の方が書かれていらっしゃる内容と同じでが。
・ご質問のスクリプトの訂正
trace(tmpAr[0][0]);
↓訂正↓
trace(tmp[0][0]);
・補足内容の訂正
> //結果をtmpArにreturn
> return tmpAr
↓訂正↓
//できた配列 tmpAr を return(戻り値として返す)
return tmpAr
BlurFiltan様、ご回答ありがとうございます!!!
普通の書き方だとこうですか、、、
本当に、勉強になりました。
ありがとうございました!
No.2
- 回答日時:
ただの日本語間違い?かと思いますが
結果をtmpArにreturn
というよりは
結果のtmpArをreturn
というべきかと
ところでいま気付いたんですが
trace(tmpAr[0][0]);
ってほんとは
trace(tmp[0][0]);
って書きたかったんじゃないですかね?
でないとなんのためにtmpにsplip2dの
戻り値代入したん?ってカンジです
まあ多分結果はおんなじ?だと思うんですが・・・
No.1
- 回答日時:
Stringクラスはdynamicクラスじゃないから
後からプロパティやメソッドを追加できないし
かといってfinalクラスなんでクラスの拡張もできないから
クラスにメソッド追加したかったら
大元の継承元のObject、prototypeに書いちゃおうという話
これでStringクラスに"|"と","で文字列を2次元(2D)配列にしちゃう
split2dメソッドなんて機能追加しちゃうよ、ってカンジですね
この回答への補足
H240S18B73様、ご回答ありがとうございます。
100%理解できたとは断言できませんが、
なるほど、、っていう感じです。
2次元(2D)配列の配列をするから、split2dで、2dがありますね。
ありがとうございました。
一行ずつコード分析すると、、
//メソッド追加
String.prototype.split2d = function () {
//これを|で配列にして、tmpArに代入、tmpArは配列、、
tmpAr = this.split("|");
//配列の要素個数を利用し、2次元配列にする。
for (j=0; j<tmpAr.length; j++) {
tmpAr[j] = tmpAr[j].split(",");
}
//結果をtmpArにreturn
return tmpAr
};
myString = "1,2,3,4|5,6,7,8|9,10,11,12";
tmp = myString.split2d();
trace(tmpAr[0][0]);
間違いところがありましたら、指摘よろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
- CPU・メモリ・マザーボード メモリの増設について 6 2022/12/28 06:41
- JavaScript 変数のスコープの問題? 3 2022/06/23 09:32
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- C言語・C++・C# char string[100]; int c, i=0; while( (c=getchar()) 2 2022/05/30 21:41
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Excel(エクセル) VBA フォルダ見える化のコードについて 2 2023/06/19 15:04
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
arduino プログラムについて
-
スマホでサイトの画像を長押し→...
-
この曲はなんでしょう?
-
フラッシュゲームアーカイブ2
-
Flashは2020年にサポートが終了...
-
potplayerについて質問です
-
ボカロ動画はFlash?HTML5?
-
flash (.swf) を編集したい
-
FLASHでゲームを作っていた人は...
-
laptop go2からの買い替え、lap...
-
スクリップト
-
私のコンピューター上のファイ...
-
chrome flash
-
FLASHの再生はできないのでしょ...
-
ウェブサイトで Flash が事実上...
-
Flashコンテンツを使ったWebサイト
-
Flash Playerのサポートが終了
-
Form内のselectを連動させるに...
-
Flashをブロックしないで
-
ダウンロードしたデジブックはa...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBでボタンを押すと画像をラン...
-
配列の要素番号を取得するには?
-
VB.NET の配列の要素数
-
重複しない乱数整数を発生させる。
-
IDの自動採番について
-
DataGridでCTRLキーを押さずに...
-
重複しない乱数の生成
-
複数の変数宣言を、for文で一気...
-
C言語のsizeof(サイズオブ)演算...
-
変な質問ですみません、n番目の...
-
Vba 配列の中の特定文字列の位...
-
FlashソフトSuzukaで、トランプ...
-
VB6 複数行のテキストをリスト...
-
簡単な当たり判定作りたい
-
【数字ランダム】計算問題ラン...
-
絵を描き、その都度のxy座標を...
-
問題がランダムに出るクイズ
-
String.prototype.split2d 理...
-
ヒープソートの問題について
-
景品パネルの作り方
おすすめ情報