javascript - 遍历数组但并非所有项目都显示

标签 javascript jquery

请参阅此处示例 - http://jsfiddle.net/jayblanchard/b2y1tagk/

使用以下代码,我认为我会将所有三个元素附加到结果,但我没有。我得到:

主要 - 栏 辅助-glorp

var elements = [{
        type: 'secondary',
        name: 'foo'
    }, {
        type: 'primary',
        name: "bar"
    }, {
        type: 'secondary',
        name: "glorp"
    }];

    var elementItem;
    $(elements).each(function () {
        if (this.type == 'primary') {
            elementItem = this.type + ' - ' + this.name + '<br />';
        } else {
            elementItem += this.type + ' - ' + this.name + '<br />';
        }
    });
$('#results').append(elementItem);

所以我想我应该将 += 运算符添加到 if 条件的第一部分,但是当我这样做时,我得到了这个:

undefinedsecondary - foo 初级 - 酒吧 辅助-glorp

它们生成时的顺序无关紧要,它们在完成时都必须存在。我确信我遗漏了一些明显的东西,有人可以告诉我那是什么吗?

最佳答案

elementItem = this.type + ' - ' + this.name + '<br />';

需要:

elementItem = this.type + ' - ' + this.name + '<br />' + elementItem;

否则,如果 primary 不是第一项,则覆盖它。

var elementItem = ""; 初始化它,这样它就不会将 elementItem 类型转换为字符串 "undefined"

http://jsfiddle.net/b2y1tagk/3/

关于javascript - 遍历数组但并非所有项目都显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25393730/

相关文章:

javascript - 嵌入 JSSOR slider

javascript - 在 webpack 中使用 "import"

javascript - Node 柯里化(Currying)函数,并为其分配了惰性值

javascript - 是否可以为带有操作的表单中的按钮添加 onclick?

javascript - 如果 var 低于某个数字降序执行某些操作

jquery - 通过id在另一个div中添加一个div?

javascript - 使用 Angular ng-repeat 指令重复时复选框不起作用

javascript - ajax成功操作后的对象引用错误 - jquery

javascript - 如何使用 jQuery(或纯 JS)替换文本而不破坏任何事件?

javascript - 使用 slider 值调整 Canvas 元素中矩形的大小