web-dev-qa-db-ja.com

jQuery / Javascriptで配列を爆破しますか?

PHPのようにjQueryに配列を分解することはできますか?

261
Omega

これは単純なJavaScriptで実行できます。 Array.prototype.join を使用してください。

arrayName.join(delimiter)

私はこれ以上のjQuery関数を知りません。

522
jon_darkstar

このような:

[1,2,3,4].join('; ')
58
mikerobi

Array.join があなたが必要とするものですが、あなたが好きなら、 phpjs.org のフレンドリーな人々があなたのために implode を作りました。

それからいくつかの話題の話題から少し外れます。 @ jon_darkstarがすでに指摘したように、jQueryはJavaScriptであり、その逆ではありません。 jQueryの使い方を理解するためにJavaScriptを知るためにneedを使う必要はありませんが、それは絶対に害を及ぼすものではありません。あなたが絶対にそれを学ぶ必要があるより大きな絵。

27
nikc.org

今後の参考のために、 PHPのimplode() when区切り文字が指定されていない場合の動作を模倣したい場合 (文字通り単に部分をつなぐだけで、Javascriptのjoin()に空の文字列を渡す必要があります。そうでない場合は、デフォルトで区切り文字としてカンマが使用されます。

var bits = ['H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd'];
alert(bits.join());    // H,e,l,l,o, ,W,o,r,l,d
alert(bits.join(''));  // Hello World
15
Robbie Averill

join()メソッドを使用すると、配列内のすべての要素を連結して新しい文字列を作成して返します。

実施例

var arr= ['A','b','C','d',1,'2',3,'4'];
var res= arr.join('; ')
console.log(res);
5
Deepu Reghunath

JavaScriptで内包の代替手段を作成できます。

function my_implode_js(separator,array){
       var temp = '';
       for(var i=0;i<array.length;i++){
           temp +=  array[i] 
           if(i!=array.length-1){
                temp += separator  ; 
           }
       }//end of the for loop

       return temp;
}//end of the function

var array = new Array("One", "Two", "Three");


var str = my_implode_js('-',array);
alert(str);
1
Vijay Verma

array.joinは ";"を認識していませんでした区切り文字ですが、コンマに置き換えます。 jQueryを使うと、$.eachを使って配列を分解することができます(output_saved_jsonが配列で、tmpが分解された配列を格納する文字列です)。

var tmp = "";
$.each(output_saved_json, function(index,value) {
    tmp = tmp + output_saved_json[index] + ";";
});

output_saved_json = tmp.substring(0,tmp.length - 1); // remove last ";" added

最後の ";"を削除するために部分文字列を使用しました。必要なくファイナルに追加しました。しかし、あなたが望むなら、代わりにsubstringのようなものを使うことができます。

var tmp = "";
$.each(output_saved_json, function(index,value) {
    tmp = tmp + output_saved_json[index];

    if((index + 1) != output_saved_json.length) {
         tmp = tmp + ";";
    }
});

output_saved_json = tmp;

$.eachが終わらない間、毎回indexが配列の長さと異なるかどうかをチェックする必要があるので、この最後の解決策は1番目の解決策より遅いと思います。

0
jaysponsored