2

すべてのアイテムの名前をコンマで区切った文字列を動的に作成したいと考えています。

var itemName = '';
for (var i=0; i < itemArray.length; i++) {
    itemName = itemName+","+itemArray[i].name;
}

名前が - のアイテムが 3 つあるとしますShoe, Jeans & Shirt。変数itemNameを次のように保存したいShoe,Jeans,Shirt

以下はitemArrayです

[{"name":"shoe","size":"3","brand":"lee"},{"name":"Jeans","size":"5","brand":"le‌​e"}...] 

上記のコードを使用すると、次のようになります,Shoe,Jeans,Shirt

最初のコンマを回避する効果的な方法は何ですか?

${stat.first?'':','}jstl に似た JavaScript のメソッドはありますか?

4

3 に答える 3

1

この問題に取り組むには 2 つの方法があります。

方法1:あなたがしていることをしてください。文字列の最初の文字を削除することを忘れないでください:

function join(array, delimiter, name) {
    var index = 0, length = array.length, string = "";
    while (index < length) string += delimiter + array[index++][name];
    return string.slice(1);
}

方法 2:基本的に、このソリューションは最初のソリューションと同じです。ただし、 と を使用しmapますjoin

function join(array, delimiter, name) {
    return array.map(function (item) {
        return item[name];
    }).join(delimiter);
}

最初の方法は、2 番目の方法よりも高速です。ただし、2 番目の方法の方が読みやすいです。joinどちらの方法でも、次のように呼び出すだけで、必要なことを実行できます。

join(itemArray, ",", "name");

それが役立つことを願っています。

于 2013-09-29T12:12:27.817 に答える
-2

,最初の項目が変数に書き込まれた後に文字を追加する必要が,あり、反復配列の最後の要素に文字を書き込まないでください

itemArray = [
                 {
                     "name" : "shoe",
                     "size" : "3",
                     "brand" : "lee"
                 }, {
                     "name" : "Jeans",
                     "size" : "5",
                    "brand" : "le‌​‌​e"
                 }
              ];

var itemName = '';
var sSeparator = ',';
var i;
for(i=0; i<itemArray.length; i+=1){

   itemName += itemArray[i].name;

   if(i < itemArray.length - 1){
       itemName += sSeparator;
   }
}
于 2013-09-29T11:37:00.583 に答える