通过每个循环创建具有多个属性的对象

时间:2014-03-16 11:37:48

标签: javascript jquery object

自从我使用对象以来已经有一段时间了,所以我需要刷新记忆。我需要帮助的是如何在每个循环中创建一个具有多个属性的对象。以下是我到目前为止所尝试的内容,但这显然不正确。

var imgs = {},
    i = 0;

$('.img').each(function() {
    i++;

    imgs['img' + i]['src'] = src;  // doesn't work

    // imgs['img' + i] = src; <- works but I want several properties for every image.
});

所需的输出:

imgs: {
    img1: {
        src: 'http://...',
        otherProp: '...'
    },
    img2: {
        src: 'http://...',
        otherProp: '...'
    },
    and so on...
}

3 个答案:

答案 0 :(得分:1)

您应该使用imgs['img' + i] = {};创建一个新对象,并将src属性及其值设置为该对象。

类似

$('.img').each(function() {
    i++;
    imgs['img' + i] = {};  //on each iteration created the new object
    imgs['img' + i]['src'] = src;  
});

答案 1 :(得分:1)

这应该是最简单的解决方案:

var imgs = {};

$('.img').each(function(index) {
    imgs['img' + index] = {
        src: src,
        otherProp: ...
        ...
    };
});

答案 2 :(得分:0)

尝试:

imgs['img' + i]['src'] = $(this).attr('src');