在嵌套JavaScript数组中循环出现问题

在嵌套JavaScript数组中循环出现问题,javascript,jquery,json,foreach,Javascript,Jquery,Json,Foreach,我在通过嵌套JavaScript数组循环时遇到问题,需要一些帮助。我试图返回一组同时包含属性名和值的列表项,但返回时未定义。任何帮助都将不胜感激,因为这是一个重要的项目 JavaScript $.getJSON("item-data.json", function(results) { $.each(results.CatalogEntryView, function(index, item) { console.dir(item.ItemDescript

我在通过嵌套JavaScript数组循环时遇到问题,需要一些帮助。我试图返回一组同时包含属性名和值的列表项,但返回时未定义。任何帮助都将不胜感激,因为这是一个重要的项目

JavaScript

$.getJSON("item-data.json", function(results) {
        $.each(results.CatalogEntryView, function(index, item) {
            console.dir(item.ItemDescription[0].features);

            document.getElementById("productHighlightsList").innerHTML = item.ItemDescription[0].features.forEach(enumerateProperties)

function enumerateProperties(key, val)
        {
            return "<li>" + key + val + "</li>"
        }

        });
    });
$.getJSON(“item data.json”),函数(结果){
$.each(results.CatalogEntryView,函数(索引,项){
console.dir(item.itemsdescription[0].features);
document.getElementById(“productHighlightsList”).innerHTML=item.ItemDescription[0]。features.forEach(枚举属性)
函数枚举属性(键,val)
{
返回“
  • ”+键+val+”
  • “ } }); });
    console.dir(item.itemsdescription[0].features)的控制台输出并显示我尝试访问的嵌套数据结构:


    因为您使用的是jQuery,所以您可以对该嵌套数组再次使用它们:

    $.getJSON("item-data.json", function(results) {
        $.each(results.CatalogEntryView, function(index, item) {
            $.each(item.ItemDescription[0].features, function(k,v){
                $("#productHighlightsList").append("<li>" + k + v + "</li>");
            });
        });
    });
    
    $.getJSON(“item data.json”),函数(结果){
    $.each(results.CatalogEntryView,函数(索引,项){
    $.each(item.itemsdescription[0]。功能,函数(k,v){
    $(“#productHighlightsList”)。追加(“
  • ”+k+v+”
  • ”); }); }); });
    为了测试这一点,我们必须假设我们拥有您的json:

    var results = {
        'CatalogEntryView': [
            {
                'ItemDescription': [
                    {
                        'features': {
                            '0': '<strong>A</strong>',
                            '1': '<strong>B</strong>',
                            '2': '<strong>C</strong>',
                            '3': '<strong>D</strong>',
                            '4': '<strong>E</strong>',
                            '5': '<strong>F</strong>',
                            '6': '<strong>G</strong>'
                        }
                    }
                ]
            }
        ]
    };
    
    $.each(results.CatalogEntryView, function(index, item) {
        $.each(item.ItemDescription[0].features, function(k,v){
            $("#productHighlightsList").append("<li>" + k + v + "</li>");
        });
    });
    
    var结果={
    “CatalogEntryView”:[
    {
    “项目描述”:[
    {
    “特征”:{
    “0”:“A”,
    “1”:“B”,
    “2”:“C”,
    “3”:“D”,
    “4”:“E”,
    “5”:“F”,
    “6”:“G”
    }
    }
    ]
    }
    ]
    };
    $.each(results.CatalogEntryView,函数(索引,项){
    $.each(item.itemsdescription[0]。功能,函数(k,v){
    $(“#productHighlightsList”)。追加(“
  • ”+k+v+”
  • ”); }); });

    代码笔上的工作测试:

    因为您使用的是jQuery,所以您可以对该嵌套数组再次使用它们:

    $.getJSON("item-data.json", function(results) {
        $.each(results.CatalogEntryView, function(index, item) {
            $.each(item.ItemDescription[0].features, function(k,v){
                $("#productHighlightsList").append("<li>" + k + v + "</li>");
            });
        });
    });
    
    $.getJSON(“item data.json”),函数(结果){
    $.each(results.CatalogEntryView,函数(索引,项){
    $.each(item.itemsdescription[0]。功能,函数(k,v){
    $(“#productHighlightsList”)。追加(“
  • ”+k+v+”
  • ”); }); }); });
    为了测试这一点,我们必须假设我们拥有您的json:

    var results = {
        'CatalogEntryView': [
            {
                'ItemDescription': [
                    {
                        'features': {
                            '0': '<strong>A</strong>',
                            '1': '<strong>B</strong>',
                            '2': '<strong>C</strong>',
                            '3': '<strong>D</strong>',
                            '4': '<strong>E</strong>',
                            '5': '<strong>F</strong>',
                            '6': '<strong>G</strong>'
                        }
                    }
                ]
            }
        ]
    };
    
    $.each(results.CatalogEntryView, function(index, item) {
        $.each(item.ItemDescription[0].features, function(k,v){
            $("#productHighlightsList").append("<li>" + k + v + "</li>");
        });
    });
    
    var结果={
    “CatalogEntryView”:[
    {
    “项目描述”:[
    {
    “特征”:{
    “0”:“A”,
    “1”:“B”,
    “2”:“C”,
    “3”:“D”,
    “4”:“E”,
    “5”:“F”,
    “6”:“G”
    }
    }
    ]
    }
    ]
    };
    $.each(results.CatalogEntryView,函数(索引,项){
    $.each(item.itemsdescription[0]。功能,函数(k,v){
    $(“#productHighlightsList”)。追加(“
  • ”+k+v+”
  • ”); }); });

    CodePen上的工作测试:

    数组。forEach
    函数不累加数组元素。您可以使用函数附加所有列表项,并在每个项周围环绕
  • 标记:

    $.getJSON("item-data.json", function(results) {
        $.each(results.CatalogEntryView, function(index, item) {
            console.dir(item.ItemDescription[0].features);
    
            document.getElementById("productHighlightsList").innerHTML = item.ItemDescription[0].features.map(function(item){
                return "<li>" + item + "</li>";
            }).reduce(function(accumulator , item) {
                return accumulator + item;
            });
        });
    });
    
    $.getJSON(“item data.json”),函数(结果){
    $.each(results.CatalogEntryView,函数(索引,项){
    console.dir(item.itemsdescription[0].features);
    document.getElementById(“productHighlightsList”).innerHTML=item.ItemDescription[0]。features.map(函数(项目){
    返回“
  • ”+项目+”
  • ”; }).减少(功能(蓄能器,项目){ 返回累加器+项目; }); }); });
    数组。forEach
    函数不累加数组元素。您可以使用函数附加所有列表项,并在每个项周围环绕
  • 标记:

    $.getJSON("item-data.json", function(results) {
        $.each(results.CatalogEntryView, function(index, item) {
            console.dir(item.ItemDescription[0].features);
    
            document.getElementById("productHighlightsList").innerHTML = item.ItemDescription[0].features.map(function(item){
                return "<li>" + item + "</li>";
            }).reduce(function(accumulator , item) {
                return accumulator + item;
            });
        });
    });
    
    $.getJSON(“item data.json”),函数(结果){
    $.each(results.CatalogEntryView,函数(索引,项){
    console.dir(item.itemsdescription[0].features);
    document.getElementById(“productHighlightsList”).innerHTML=item.ItemDescription[0]。features.map(函数(项目){
    返回“
  • ”+项目+”
  • ”; }).减少(功能(蓄能器,项目){ 返回累加器+项目; }); }); });