2013-08-06 42 views
1

我想分割一個JSON數組,但出現以下錯誤:使用切片功能切片JSON對象

Object # has no method 'slice'

以下是我的代碼:

$scope.getPagedDataAsync = function (pageSize, page, searchText) { 
    setTimeout(function() { 
     var data; 
     programService.query({ 
      id: $routeParams.id 
     }, function (result) { 
      data = { 
      'program': result 
      }; 
      data = JSON.stringify(data); 
      data = JSON.parse(data); 
      $scope.setPagingData(data,page,pageSize); 

     }); 
    }, 100); 

}; 

$scope.setPagingData = function(data, page, pageSize){ 
    var pagedData = data.slice(0, 3); 
    $scope.myData = pagedData; 
    $scope.totalServerItems = data.length; 
    if (!$scope.$$phase) { 
     $scope.$apply(); 
    } 
}; 

JSON數據:

{programId:1, 
programName:project1, 
programContent:content1, 
programStartDate:2012-01-01, 
templateId: '1'} 

我想切片數組如下:programId,1,programName,project1,...

我很困惑,請幫忙。

+1

對象沒有'slice'方法。 – godfrzero

+0

數組對象的切片方法,在您的情況'數據'不是一個數組它是一個對象 –

+0

如何將數據轉換爲數組? – user2473037

回答

0

嘗試

var data = { 
    programId:1, 
    programName:'project1', 
    programContent:'content1', 
    programStartDate:'2012-01-01', 
    templateId: '1' 
} 
var array = []; 
for(var key in data){ 
    if(!data.hasOwnProperty(key)){ 
     continue; 
    } 
    array.push(key, data[key]) 
} 
console.log(array, array.slice(0, 4)) 
+1

雖然這可能適用於所有瀏覽器今天,沒有迭代順序的保證。如果這是期望的結果,則OP可能更好地顯式創建陣列。 – dc5

+0

@ dc5是的,你是對的...規範不保證鍵的順序 –

+0

感謝每個機構 – user2473037