[英]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.