Ali
Ali

Reputation: 5476

Javascript: Removing an object from array by checking it's attribute

I might have written a pretty confusing title but my question is rather simple.

I'm looking for an efficient way to remove an item from an array. But my array is full objects that has been stringified (I'm writing my app on Node.js and I'm using JSON.stringify method). So my array is like this;

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

My question is on Javascript(or Node). If I wanted to remove the from possibleFollowers with "followerID: 202", how would I be able to do that efficiently?

Upvotes: 0

Views: 615

Answers (4)

Bergi
Bergi

Reputation: 664297

var string = "…";

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

Upvotes: 3

Peter
Peter

Reputation: 48958

In javascript, the splice method is used to delete an array element by index.

see :

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

Upvotes: 0

Diode
Diode

Reputation: 25135

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

Upvotes: 2

Alexey Sidorov
Alexey Sidorov

Reputation: 866

try just to delete it by using "delete"

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

Upvotes: -1

Related Questions