遍历JavaScript对象

时间:2018-07-05 11:02:35

标签: javascript jquery arrays object

我试图遍历此JavaScript对象,但它只返回最后一个键。

这是我的代码

var array = [
    {
        "outfit": {
            "url": "http://www.nintendo.co.uk",
            "title":"T-shirt",
            "price":"£20"
        }
    },
    {
        "outfit": {
            "url": "http://www.nintendo.co.uk",
            "title":"T-shirt",
            "price":"£720"
        }
    },
    {
        "outfit": {
            "url": "http://www.nintendo.co.uk",
            "title":"T-shirt",
            "price":"£9920"
        }
    }
];

for(var i=0; i<array.length; i++){

    console.log(array[i]);

    $('.slide .content').each(function(index){
        if(i == index) {

            console.log(i + "==" + index);
            var contentDiv = $('.slide .content')[index];

            contentDiv.innerHTML = "";
            contentDiv.innerHTML = '<a href="'+ array[i].url +'">'+ array[i].title + '<span>'+ array[i].price +'</span></a>'
        }


    });

}

我基本上是试图遍历数据,将其提取出来以用作外观书传送带。然后,将每个轮播幻灯片的每个数据附加到$('。slide .content')中。

任何帮助将不胜感激。非常感谢

3 个答案:

答案 0 :(得分:0)

已编辑

var array = [
    {
        "outfit": [
            {
                "link": {
                    "url": "http://www.nintendo.co.uk",
                    "title":"T-shirt",
                    "price":"£20"
                },
            },
            {
                "link": {
                    "url": "http://www.bbc.co.uk",
                    "title":"Trousers",
                    "price":"£60"
                }
            }
        ]
    },
    {
        "outfit": [
            {
                "link": {
                    "url": "http://www.nintendo.co.uk",
                    "title":"Dress",
                    "price":"£920"
                }
            }
        ]
    }
];
array.forEach(function(value, index ){
    value.outfit.forEach(function( outfitValue, outfitIndex){
        console.log(outfitValue.link.title);
    });    
});

结果

  • T恤
  • 长裤
  • 连衣裙

https://jsfiddle.net/jzpL8dnm/13/


我更改了代码的结构。它可以帮助您解决问题。

var array = [
    {
        "outfit": {
            "link": {
                "url": "http://www.nintendo.co.uk",
                "title":"T-shirt",
                "price":"£20"
            },
            "link": {
                "url": "http://www.bbc.co.uk",
                "title":"Trousers",
                "price":"£60"
            }
        }
    },
    {
        "outfit": {
            "link": {
                "url": "http://www.nintendo.co.uk",
                "title":"Dress",
                "price":"£920"
            }
        }
    }
];

for(var key in array){
    console.log(array[key]);
}

答案 1 :(得分:0)

我发现,如果我们在JavaScript对象中具有相同的键,则在通过编译器/编译器遍历JavaScript对象时,它将获得键的更新信息。因此,如果您真的想实现键,则键应该是唯一的。关联数组是最方便的方法,因为索引将帮助您检索数据(无论数据是否重复)。

第二种方式:如果只想使用js对象,则在具有相同键的js对象中创建数组。

答案 2 :(得分:-1)

您具有相同的键。 JS对象中的键必须唯一。