0

これが私が修正しようとしている関数のコードです。この例は、「stream」という名前の既存の配列からの単一のアイテムで機能します。

list = [
    {
        service: 'service1',
        user: stream [0],
        template: {
            posted:HTML1 +  stream[0] + HTML2
        }
    }
],

コードは元々値の手動入力を要求していたuserので、他の場所で同じ値をHTML用の$ .eachで使用しているため、配列に切り替えました。

配列のstream長さはさまざまである可​​能性があるため、アイテムの数と一致させる必要があると思われるため、以下のような手動での記述は避けたいと思いstreamます(1から50以上の範囲である可能性があります)。

list = [
    {
        service: 'service1', 
        user: stream [0], 
        template: { 
            posted:HTML1 +  stream[0] + HTML2
        }
    }, 
    { 
        service: 'service1', 
        user: stream [1], 
        template: { 
            posted:HTML1 +  stream[1] + HTML2
        }
    } 
],

あなたの助けと指導に感謝します!

PSこれはこの質問に対する別の試みであり、今回はより明確になることを願っています。まだ学んでいます。

4

3 に答える 3

3

私は信じています、あなたはこれを望んでいます:

var SERVICE = 'service1';

list = jQuery.map(stream, function (item) { 
  return {
    service: SERVICE, 
    user: item, 
    template: { 
        posted:HTML1 +  item + HTML2
    }
  }; 
});
于 2012-07-05T15:38:57.673 に答える
2

JavaScript だけを使用したソリューション: (より単純な) jQuery ソリューションについては、エンジニアの投稿を参照してください。

var list = [];

for (var i = 0; i < stream.length; i++) {
    list.push({
        service: 'service1',
        user: stream[i],
        template: {
            posted: HTML1 + stream[i] + HTML2
        }
    });
}
于 2012-07-05T15:47:05.310 に答える
1

これを見てください:http://jsfiddle.net/xHfDb/

$.map(stream, function(item, index) {
        return {
            service: 'service' + index,
            user: item,
            template: {
                posted: HTML1 + item + HTML2
            }
        }
    })
于 2012-07-05T15:44:42.823 に答える