I have these rows and want to delete all rows that have cell containing "undefined"
"rows":[
[0,"Peter", "undefined value"],
[3,"John", 90909090],
[5,"Mary","undefined"]
]
So, I need to remove rows 1 and 3
just use filter
let rows = [
[0, 'Peter', undefined],
[3, 'John', 90909090],
[5, 'Mary', undefined],
];
rows = rows.filter((row) => {
return row.indexOf(undefined) === -1;
});
console.log(rows); // [ [ 3, 'John', 90909090 ] ]
if you mean that delete the array if it has a string cell contain 'undefined' as string you can go with this
let rows = [
[0, 'Peter', 'undefined value'],
[3, 'John', 90909090],
[5, 'Mary', 'undefined'],
];
rows = rows.filter((row) => {
let isContainUndefined = false;
row.forEach((element) => {
if (String(element).includes('undefined')) {
isContainUndefined = true;
return;
}
});
return !isContainUndefined;
});
console.log(rows); // [ [ 3, 'John', 90909090 ] ]
With filter, then some on each item which is truthy if none of the items in each array includes undefined (string).
let rows = [
[0, "Peter", "undefined value"],
[3, "John", 90909090],
[5, "Mary", "undefined"]
];
rows = rows.filter(row => !row.some(v => typeof v === 'string' && v.includes('undefined')));
console.log(rows); // [ [ 3, 'John', 90909090 ] ]