如何从javascript对象获取与特定ID匹配的项目

时间:2016-09-15 12:30:38

标签: javascript

我正在尝试为特定页面发表评论。

所以我想得到所有注释,其中slangID = 0Uwx4oXQVEckArRSZNerwhfDZFF3成为一个数组或对象。 这是我的javascript对象:

{
"3d0366ccf32c4459b9a38aee0dde425a": {
"comment": "This is up\nI know",
"commentID": "3d0366ccf32c4459b9a38aee0dde425a",
"slangID": "34a97a464b51d81a592cf37c8d83cc9e",
"time_date": "2016-09-15T06:15:09.969Z",
"user_id": "0Uwx4oXQVEckArRSZNerwhfDZFF3",
"username": "james"
},
"4b0839bba81943e9cb511365d2978ad6": {
"comment": "aaaaaaa",
"commentID": "4b0839bba81943e9cb511365d2978ad6",
"slangID": "34a97a464b51d81a592cf37c8d83cc9e",
"time_date": "2016-09-15T06:54:36.026Z",
"user_id": "bHDKSU6aorX9efzBCHy",
"username": "ericel123"
},
"5064603984a3a217ae02cd0dab7ede81": {
"comment": "this\n",
"commentID": "5064603984a3a217ae02cd0dab7ede81",
"slangID": "34a97a464b51d81a592cf37c8d83cc9e",
"time_date": "2016-09-15T06:37:15.113Z",
"user_id": "0Uwx4oXQVEckArRSZNer",
"username": "james"
},
"59691edb302c4d0a70d6bb860e64d4e1": {
"comment": "hello\n",
"commentID": "59691edb302c4d0a70d6bb860e64d4e1",
"slangID": "34a97a464b51d81a592cf37c8d83cc9e",
"time_date": "2016-09-15T06:36:41.308Z",
"user_id": "0Uwx4oXQVEckArRSZNer",
"username": "james"
}
}

所以我可以将评论放在一个名为'comments'的对象中。 我尝试过这样的过滤器:

var filtered =  vm.comments.filter(function(item) {
        return item.slangID === sid;
  });
 var comments = filtered;

它没有用完。

2 个答案:

答案 0 :(得分:1)

假设您的对象名为 commentList 。只需循环对象中的所有键并检查俚语是否匹配,然后推送到数组。

var result = [];
for(var key in commentList){
    if(commentList[key].slangID == theSlangImLookingFor)
        result.push(commentList[key]);

}

答案 1 :(得分:0)

var obj ={
"3d0366ccf32c4459b9a38aee0dde425a": {
"comment": "This is fucked up\nI know",
"commentID": "3d0366ccf32c4459b9a38aee0dde425a",
"slangID": "34a97a464b51d81a592cf37c8d83cc9e",
"time_date": "2016-09-15T06:15:09.969Z",
"user_id": "0Uwx4oXQVEckArRSZNerwhfDZFF3",
"username": "james"
},
"4b0839bba81943e9cb511365d2978ad6": {
"comment": "aaaaaaa",
"commentID": "4b0839bba81943e9cb511365d2978ad6",
"slangID": "34a97a464b51d81a592cf37c8d83cc9e",
"time_date": "2016-09-15T06:54:36.026Z",
"user_id": "bHDKSU6aorX9efzBCHy",
"username": "ericel123"
},
"5064603984a3a217ae02cd0dab7ede81": {
"comment": "fuck this\n",
"commentID": "5064603984a3a217ae02cd0dab7ede81",
"slangID": "34a97a464b51d81a592cf37c8d83cc9e",
"time_date": "2016-09-15T06:37:15.113Z",
"user_id": "0Uwx4oXQVEckArRSZNer",
"username": "james"
},
"59691edb302c4d0a70d6bb860e64d4e1": {
"comment": "hello\n",
"commentID": "59691edb302c4d0a70d6bb860e64d4e1",
"slangID": "34a97a464b51d81a592cf37c8d83cc9e",
"time_date": "2016-09-15T06:36:41.308Z",
"user_id": "0Uwx4oXQVEckArRSZNer",
"username": "james"
}
}
Object.keys(obj).filter(function(k){
  return obj[k].slangID === "34a97a464b51d81a592cf37c8d83cc9e"
});

我使用过“34a97a464b51d81a592cf37c8d83cc9e”,因为你提供的数据是在你的coude中为“0Uwx4oXQVEckArRSZNerwhfDZFF3”更改