我花了一些时间尝试制作标题来解释所发布的问题,但我担心它有点不足以解决我遇到的问题。
简而言之,我正在使用 for 循环来迭代这个对象数组。
var people = [
{
name: "John Doe",
age: 33,
gender: "male",
loc: "Springfield"
},
{
name: "Jane Doe",
age: 32,
gender: "female",
loc: "Springfield"
}
];
for 循环通过一个传递两个参数、一个元素 id 和数组的函数运行,如下所示。
var list = {
html: function (el, array) {
var container = document.getElementById(el), html;
for( var i=0;i<array.length;i++ ) {
html = '<div class="item">';
html += '<h1>'+array[i].name+'</h1>';
html += '<p>Age: '+array[i].age+'</p>';
html += '<p>Sex: '+array[i].gender+'</p>';
html += '<p>Location: '+array[i].loc+'</p>';
html += '</div>';
console.log( array[i].name+', '+array[i].age+', '+array[i].gender+', '+array[i].loc );
}
container.innerHTML = html;
}
}
list.html('list', people);
问题:循环仅返回数组中的最后一个对象。我不确定为什么会发生这种情况或如何解决。任何帮助将不胜感激。谢谢。
这里是一个链接:relevant demo
最佳答案
使用空字符串初始化 html
var,并在 for
循环的开头添加 +
:
var container = document.getElementById(el), html = "";
for( var i=0;i<array.length;i++ ) {
html += '<div class="item">'; // add plus here
关于Javascript - 循环对象数组,仅显示最后一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36140344/