Remove object based on an array value inside the object

I’m trying to remove an object that resides in an array of objects, based on the value that is located in an array inside that object. The data structure that I have right now is like this:

[
   {name:['tutorial', 1, 'langkah'], value:"ABC"},
   {name:['tutorial', 2, 'langkah'], value:"DEF"},
   {name:['tutorial', 3, 'langkah'], value:"GHI"}
]

I would like to remove an object that has the name value of 1 in the name array.

I’ve tried to replicate the potential solution by using Object.keys found in here: remove object inside array inside an object based on id in javascript but I couldn’t wrap my head around the different data structure.

Answer

You could use filter() and indexOf():

let main = [
   {name:['tutorial', 1, 'langkah'], value:"ABC"},
   {name:['tutorial', 2, 'langkah'], value:"DEF"},
   {name:['tutorial', 3, 'langkah'], value:"GHI"}
]

let ans = main.filter((x)=>{
  return x.name.indexOf(1)==(-1); //Returning true only for elements where 1 is not an element in name property array
});

Your original array stays as it is.

Note: There are no checks here, so this will fail if your array elements do not follow the same structure as you mentioned.