2015-07-02 33 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

相关问题