2013-08-05 43 views
1

我有一個問題, 我在ajax打了個電話, 結果是JSON回調。.Shift()第一個元素從json回調

 

    $.ajax({ 
     url: "ajax/xxx.php", 
     type: "POST", 
     data: dataString, 
     dataType: "json", 
     success: function(callback){ 
      if(callback.pstatus=='ok'){ 
       // do somthing 
      } 
      if(callback.pstatus=='bad'){ 
       callback.shift(); 
       self.showErrors(callback); 
      } 
     } 
    }); 

我想SHIFT()名爲「pstatus」的元素。 但我在控制檯出現錯誤「Uncaught TypeError:Object#has no method'shift'」。

謝謝。

+0

'.shift'只適用於數組。你有一個非數組對象。嘗試把'console.log(callback)'放在那裏,看看數組是否是對象的一個​​屬性。 – FakeRainBrigand

+0

如果我將使用Array.prototype.shift.apply()? – GuyChabra

+0

這不是一個數組。它會爲您的對象添加一個長度屬性,但沒有其他效果。你想要的輸出是什麼? – FakeRainBrigand

回答

2

:如果你想採取同樣的行動Array.prototype.shift,你可以只刪除callback對象的第一個成員。

delete callback.pstatus; 
0

返回的數據作爲callback是一個對象,而不是陣列。 Array.prototype.shift將沒有實際效果。如果你想擺脫pstatus屬性,您可以直接刪除它的

for(var k in callback) { 
    delete callback[k]; 
    break; 
} 
+0

如果我將使用Array.prototype.shift.apply()? – GuyChabra

相關問題