如何修改它以使用数组中的所有项?

时间:2012-07-05 15:33:33

标签: javascript jquery

以下是我正在尝试修改的函数中的代码。此示例适用于名为“stream”的现有数组中的单个项目:

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

最初调用user值的手动输入的代码,所以我切换到一个数组,因为我在其他地方使用相同的值,而$ .each用于HTML的东西。)

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这是对这个问题的又一次尝试,希望这次更清楚。还在学习。

3 个答案:

答案 0 :(得分:3)

我相信,你想要这个:

var SERVICE = 'service1';

list = jQuery.map(stream, function (item) { 
  return {
    service: SERVICE, 
    user: item, 
    template: { 
        posted:HTML1 +  item + HTML2
    }
  }; 
});

答案 1 :(得分: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
        }
    });
}

答案 2 :(得分:1)

看看这个:http://jsfiddle.net/xHfDb/

$.map(stream, function(item, index) {
        return {
            service: 'service' + index,
            user: item,
            template: {
                posted: HTML1 + item + HTML2
            }
        }
    })