簡體   English   中英

數組concat返回空數組

[英]Array concat returns empty array

我在事件處理程序中使用concat將多個項目添加到數組中,如下所示:

var selectedValues = [];
$.each($('#selected-levels').data("kendoListBox").dataSource.data(), function(i, item) {
    selectedValues.concat([ item.id ])
});

return {
    "selected" : selectedValues
};

即使我檢查了dataSource是否有某些item (通過調試器逐步執行),它始終返回{level-selected: Array(0)}

為什么項目不出現在數組中?

concat不會改變數組 ,您需要將值設置回selectedValues

selectedValues = selectedValues.concat([ item.id ])

或使用push

selectedValues.push( item.id )

具有諷刺意味的是,答案已經隱藏在您的問題中,更確切地說是您的問題標題中。

實際上,concat 返回所需的正確新數組...您只是從未使用過返回值!

您必須知道該數組未在適當位置修改,但會返回一個新副本。

因此,如果您想執行任何操作,則應該將selectedValues.concat([ item.id ])替換為selectedValues = selectedValues.concat([ item.id ])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM