特定の文字列で連結して返す関数
String.prototype.connect=function(){
var connectString=this,text='';
foreach(arguments,function(){ //for(var i in arguments){}とfor(i=0;i<i.length;i++){}を使い分けされています
if(text){
text+=connectString;
}
text+=this;
});
return text;
};
このように、thisに指定された文字列で、引数にある文字列を連結する関数を作ったのですが、
例:
' - '.connect('a','b','c');
->a - b - c
配列などを渡した場合も表示したいのですが、typeof this=='object'で確認し、foreach(this,function(){/*~*/});
だと、その配列の中に更に配列がある場合、もう一度チェックし、foreachをやらなければなりません。
これではキリがないので、どうしたらいいでしょうか?
arguments.calleeや、whileなどでどうにかしようと思いましたが、難しくて出来ませんでした><
やりたいことは、こうです↓
'or'.connect('あ',['い',['う','え','お'],'か',['き'],['く','け'],'こ','さ'],'し','す','せ',[[['そ']][['た','ち','つ','て','と']]]);
->あorいorうorえorおorかorきorくorけorこorさorしorすorせorそorたorちorつorてorと
複雑かもしれませんが、お力をお貸しくださいm(_ _)m
お礼
テストしてみたら、無事にアラートが表示されました。 (うそだぁ~と思いつつ...) とても勉強になりました!ありがとうございました。