Javascript:通过检查数组的属性从数组中删除对象

时间:2012-10-19 07:42:28

标签: javascript json performance node.js

我可能写了一个相当令人困惑的标题,但我的问题很简单。

我正在寻找一种从数组中删除项目的有效方法。但是我的数组是字符串化的完整对象(我在Node.js上编写我的应用程序,而我正在使用 JSON.stringify 方法)。所以我的数组是这样的;

"{\"userID\":\"15\",
  \"possibleFollowers\":[
      {\"followerID\":\"201\",\"friends\":716},
      {\"followerID\":\"202\",\"friends\":11887},
      {\"followerID\":\"203\",\"friends\":11887}],
  \"name\":\"John\",
  \"lon\":\"Doe\"}"

我的问题是关于Javascript(或Node)。如果我想用“followerID:202”删除那些可能的关注者,我怎样才能有效地

4 个答案:

答案 0 :(得分:3)

var string = "…";

var obj = JSON.parse(string);
obj.possibleFollowers = obj.possibleFollowers.filter(function(fol) {
    return fol.followerID != "202";
});
string = JSON.stringify(obj);

答案 1 :(得分:2)

var data = "{\"userID\":\"15\",\"possibleFollowers\":[{\"followerID\":\"201\",\"friends\":716},{\"followerID\":\"202\",\"friends\":11887},{\"followerID\":\"203\",\"friends\":11887}],\"name\":\"John\",\"lon\":\"Doe\"}";

var dataObject = JSON.parse(data);
dataObject.possibleFollowers = dataObject.possibleFollowers.filter(function(follower) {
    return !(follower.followerID == "202");
});
data = JSON.stringify(dataObject);

答案 2 :(得分:0)

在javascript中,splice方法用于按索引删除数组元素。

见:

http://www.roseindia.net/java/javascript-array/javascript-array-remove-index.shtml

答案 3 :(得分:-1)

尝试使用“删除”

删除它
for (var i in possibleFollowers) {
    if (possibleFollowers[i]['followerId'] == '216') {
        delete possibleFollowers[i];
    }
}