![](/img/trans.png)
[英]FreeCodeCamp: Iterating Through All an Array's Items Using For Loops
[英]Iterating through array and not all items are showing
在此處查看示例-http: //jsfiddle.net/jayblanchard/b2y1tagk/
使用以下代碼,我認為我會將所有三個元素附加到結果上,但是我沒有。 我得到:
primary - bar secondary - 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 primary - bar secondary - glorp
它們生成時的順序無關緊要,完成后它們都必須在那里。 我確定自己缺少明顯的東西,有人可以告訴我那是什么嗎?
elementItem = this.type + ' - ' + this.name + '<br />';
需要是:
elementItem = this.type + ' - ' + this.name + '<br />' + elementItem;
否則,如果primary不是第一項,則將其覆蓋。
用var elementItem = "";
初始化它var elementItem = "";
因此它不會將elementItem類型轉換為字符串“ undefined”
當您達到主要類型時,將用=
重置elementItem
變量。 嘗試附加列表中的每個項目。 通過var elementItem=''
初始化elementItem。
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);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.