我有一個ID爲「流派」的多選列表項。在我的代碼中,我獲得了「流派」的價值,將其分開,然後遍歷並將每個值添加到另一個數組。但出於某種原因,它增加了一個額外的條目。這裏是我的代碼:在javascript中添加一個額外時間的多個選擇列表值
if ($("#genres").val()!=null) {
var genres = $("#genres").val().toString().split(",");
for (var i in genres) {
model.TitleGenres.push({ GenreId: genres[i] });
}
}
變量model.TitleGenres初始化爲[];
當我調試這在Firebug,我得到的值是:
genres: [ "6", "1770" ]
在循環結束時,我得到:
model.TitleGenres: [Object { GenreId="6"}, Object { GenreId="1770"}, Object { GenreId=function()}]
我不知道爲什麼有一個額外的GenreId = function()的入口,任何人都可以解釋爲什麼是這樣以及如何消除它?
爲什麼? (我並不是說你錯了,但是這種陳述應該真的得到一個論證的支持,理想情況下,通過引用你的來源。) – 2012-03-06 20:13:32
for..in不應該用於遍歷數組,其中索引順序很重要。不能保證for ... in將以任何特定順序返回索引,並且它將返回所有可枚舉的屬性,包括那些具有非整數名稱和那些被繼承的屬性。由於迭代順序是與實現相關的,迭代數組可能無法以一致的順序訪問元素。因此,在遍歷訪問順序非常重要的數組上迭代時,最好使用帶有數字索引的for循環。 〜MDN – 2012-03-06 20:16:07
第一個答案得到檢查。謝謝,kirilloid。 – 2012-03-06 20:18:58