在嵌套JavaScript数组中循环出现问题
我在通过嵌套JavaScript数组循环时遇到问题,需要一些帮助。我试图返回一组同时包含属性名和值的列表项,但返回时未定义。任何帮助都将不胜感激,因为这是一个重要的项目 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
$.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(函数(项目){
返回“”+项目+” ”;
}).减少(功能(蓄能器,项目){
返回累加器+项目;
});
});
});