Javascript 数组concat返回空数组

Javascript 数组concat返回空数组,javascript,Javascript,我在事件处理程序中使用concat向数组添加了几个项,如下所示: var selectedValues = []; $.each($('#selected-levels').data("kendoListBox").dataSource.data(), function(i, item) { selectedValues.concat([ item.id ]) }); return { "selected" : selectedValues }; 这总是返回{level se

我在事件处理程序中使用
concat
向数组添加了几个项,如下所示:

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

return {
    "selected" : selectedValues
};
这总是返回
{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])