如果对象键等于预定义值,如何附加json数据?

时间:2015-07-02 10:11:18

标签: javascript jquery arrays json

我有一个通过循环拉入数据的ajax GET请求。我想要实现的是获取相关但不在您当前帖子的预定义id值的帖子。所以我在下面有这个功能:

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是我想要设置参数的值。

1 个答案:

答案 0 :(得分:-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

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);
    }
}