2015-07-10 71 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};