2015-07-10 59 views
0

我已经创建了数组var aData = [];,我想使用Web服务添加到数组中。我用下面的代码检索最后一项:添加到数组javascript

var GSUserAfterFindRecord = function (sender) { 
    UserVM.ModelList = ko.observableArray(UserVM.Model.GetDataList()); 
    var list = {}; 

    $.each(UserVM.Model.GetDataList(), function (index, item) { 
     list = { name: item.Name }; 
    }); 
    aData.push(list); 
    oModel.refresh(); 
} 

但我想检索所有项目不只是最后一个。我试过list += { name: item.Name }而不是list = { name: item.Name };,但它返回一个空白表。我已经使用console.log来查看正在推送到aData的内容,并且在添加+时我得到:["[object Object][object Object][object Object][obje…ect][object Object][object Object][object Object]"]没有+我得到[Object]

我应该提到,我使用sapui5表,这就是为什么我有oModel.refresh,但我认为这可以在不知道我使用sapui5表的情况下完成。

回答

5

如果您将list对象放入数组中(它当前为object),然后将push部件移动到每个循环中,您将可以将每个项目添加到数组中。
Array.prototype.push方法向数组中添加一个项目。

var list = []; 
$.each(UserVM.Model.GetDataList(), function (index, item) { 
    list.push({ name: item.Name }); 
}); 

或者仅使用aData阵列中的每个循环,而不是创建一个新的临时阵!

+1

谢谢!这就是诀窍!我只是将'list'改为'aData'。奇迹般有效。我会尽我所能接受。 – Anthony

0

试试这个:

list [name] = item.Name;而不是list = {name:item.Name};