Javascript - 循环访问对象数组,仅显示最后一个对象
Javascript - Looping over an array of objects, only last object show
我花了一些时间试图制作解释问题的标题,但我担心它与我遇到的问题有点差。
简而言之,我使用 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);
问题:循环仅返回数组中的最后一个对象。我不确定为什么会发生这种情况或如何解决它。任何协助将不胜感激。谢谢。
这是指向以下链接:相关演示
Init html
带有空字符串的 var 并在循环的开头添加for
+
:
var container = document.getElementById(el), html = "";
for( var i=0;i<array.length;i++ ) {
html += '<div class="item">'; // add plus here
foor 循环中的第一条指令是赋值
html = '<div class="item">'
因此,在每次迭代中,"HTML"的全部内容都会被替换。你应该使用
html += '<div class="item">';
相关文章:
- dataTables-如何自定义分页类型以显示最后一个页码后面的省略号,
- 谷歌地图-数据库中的标记只显示最后一行的信息
- jQuery自定义验证只显示最后一个字段的错误
- ExtJS DataView只显示最后一个JSON元素
- 有角度的ng重复只显示最后一个元素.如果只有一个元素;我什么也不展示
- Javascript - 循环访问对象数组,仅显示最后一个对象
- 显示最后一个元素后刷新页面
- 剑道网格在删除后仍显示最后一条记录
- Javascript Array 只显示最后一个孩子
- 我需要屏蔽传入号码并仅显示最后 4 位数字
- infowindow.setContent 方法仅显示最后一个帐户名
- 谷歌可视化散点图只显示最后一个系列的工具提示
- "重新打开最后一个关闭的选项卡“;导致显示最后一个ajax请求内容
- 如何添加一个类列表,并且只在JavaScript中显示最后一个类
- Twitter Bootstrap Scrollspy仅突出显示最后一项
- 单击DIV上的所有ID时如何显示最后一个ID
- 在页面加载时,不是显示第一张幻灯片,而是显示最后一张幻灯片不到一秒钟
- 只显示最后一个元素
- 使用setTimeOut在3秒后逐个显示标记.为什么它只显示最后一个标记
- 使用java脚本显示最后一次看到的网页状态