2015-07-02 32 views
0

我有一個ajax GET請求,通過循環拉入數據。我試圖實現的是獲取相關的帖子,但不在當前發佈的預定義ID值中。所以,我有下面這個函數:如果對象關鍵字等於預定義值,如何追加json數據?

var _permId = $('#work-area').data('current-id');  
var getRelatedPosts = function() { 

      $.ajax({ 
       url: '/wp-json/posts?type=case-studies&filter[taxonomy]=awards&filter[term]='+_awardsPart+'', 
       success: function (query) { 

       //List some global variables here to fetch post data 
       // We use base as our global object to find resources we need 
       // _permId is the var that tells me the current id of this post 
       var posts = query; 
       postFull = []; 
       for(var i = 0; i < posts.length; i++) { 
        //terms.push(term); 
        var postObject = posts[i]; 
        postFull.push(postObject); 
        for (var key in postObject) { 
         //console.log(postObject[key]); 
         if (postObject[key] === _permId) { 
          console.log('this is the same as this post'); 
         } 
        } 
       }; 
       }, 
       cache: false 
      }); 

     }; 

我想要做的不是通過允許任何內容,如果後期對象ID相同的值_permId

這裏是與鍵和值檢索的JSON的一個想法:

Object {ID: 4434, title: "new brand case", status: "publish", type: "case-studies", author: Object…} 

ID是我想設置針對一個參數的值。

+0

您的問題解決了嗎? – Sacreyoule

回答

-1

您還沒有對象的循環,如果你只是想檢查ID

... 
postFull = []; 
for(var i = 0; i < posts.length; i++) { 
    var postObject = posts[i]; 
    postFull.push(postObject); 
    if(postObject.ID === _permId) { 
     //they have the same id 
    } 
}; 

編輯: 爲了得到你想要的,你可以使用$.grep的DATAS:

var newArray = $.grep(posts, function(e, i){return e.ID !== _permiId;}); 

或純JS版

var newArray = []; 
for(var i = 0; i < posts.length; i++){ 
    var p = posts[i]; 
    if(p.ID !== _permId){ 
     newArray.push(p); 
    } 
} 
+1

啊對不起。我如何才能顯示與沒有該ID的對象有關的數據,但我正如上面所述。這並沒有回答這個問題,這是一個建議,真的應該是一個評論。 –

+0

我認爲這是答案。你需要一個不包含_permId項的數組,這就是@Sacreyoule的$ .grep和純JS的答案所顯示的內容。或者我們錯過了什麼? – DvS

+0

我剛剛編輯我的帖子,之前只有「如果」的東西... – Sacreyoule

相關問題