Home > Enterprise >  How to remove certain elements from the inner array in JavaScripts
How to remove certain elements from the inner array in JavaScripts

Time:02-22

var array = [[10, 20, 30, 20, 50], [40, 50, 60, 20, 20], [70, 80, 90, 20, 20], [70, 80, 90, 20, 20]];

For example i want to delete elements == 50

I want this result -> array= [[10,30,20], [40,60,20], [70,90,20], [70,90,20]];

I try this solution but it is not working ->

  for (var i = 0; i < array.length; i  ) {
    for (var j = 0; j < array[i].length; j  ) {
      if (array[i][j] == 50) {
        array[i].splice(j, 1);
      }
    }
 }

CodePudding user response:

You need to collect unwanted indices first and then return.

const
    data = [
        [10, 20, 30, 20, 50], 
        [40, 50, 60, 20, 20], 
        [70, 80, 90, 20, 20], 
        [70, 80, 90, 20, 20]
    ],
    //       ^^          ^^ cols with 50
    //
    indices = data.reduce(
        (r, a) => a.map((v, i) => v === 50 ? false : r[i] ?? true),
        []
    ),
    result = data.map(a => a.filter((_, i) => indices[i]));

result.forEach(a => console.log(...a));

CodePudding user response:

const array = [[10, 20, 30, 20, 50], [40, 50, 60, 20, 20], [70, 80, 90, 20, 20], [70, 80, 90, 20, 20]];


const filteredArr = array.map(item => [...new Set(item.filter(i => i !== 50))])

// filterdArr = [[10, 30, 20], [40, 60, 20], [70, 80, 90, 20], [70, 80, 90, 20]];
  • Related