0

I have an array of object, I want to remove entire object from the array whose value is 1, I am using filter but not working. Here is the code:

var arraydata = [
  {"name":"name1","value":1},
  {"name":"name2","value":2},
  {"name":"name3","value":3}
];

arraydata.filter(i=>i.value !== 1);
console.log(arraydata);
ikos23
  • 4,879
  • 10
  • 41
  • 60

2 Answers2

1

.filter return a new array rather than mutating the current one. So you should reassign arraydata

var arraydata = [{
  "name": "name1",
  "value": 1
}, {
  "name": "name2",
  "value": 2
}, {
  "name": "name3",
  "value": 3
}];

arraydata = arraydata.filter(i => i.value !== 1);
console.log(arraydata);
hgb123
  • 13,869
  • 3
  • 20
  • 38
0

You almost had it:

let arraydata = [{"name":"name1","value":1},{"name":"name2","value":2},{"name":"name3","value":3}];
const after = arraydata.filter(x=>x.value !== 1);
console.log('before',arraydata,'after',after);
arraydata = after;

note: it is better not to use i for the item in the filter (it is not an error, but may cause confusion when you want to filter by content and by index)

malarres
  • 2,941
  • 1
  • 21
  • 35