I have an array type Person that has some data. Example:
const people = [{name: "John", age: "18"},{name: "Mike", content: "20"},{label: "Brand", content: "18"},{label: "Alice", content: "50"},{label: "Zina", content: "10"}];
I have another array type of string[] that has the following data:
names=["John", "Zina"];
I try to delete the names that are on the second array from the first array like this:
for (let i = 0; i < people.length; i++) {
for (let j = 0; j < names.length; j++) {
if (names[j] === people[i].name) {
people.splice(i);
}
}
}
Why it does not work?
namewhile other havelabel..people.filter(({name}) => !names.includes(name))splice. It will delete all the items starting fromi. Even if you change it topeople.splice(i, 1), it will break the loop because: Looping through array and removing items, without breaking for loop. You need to loop in the reverse direction to make it work