Iterate Through All an Array's Items Using For Loops this is second appoarch doesnot working

Iterate Through All an Array's Items Using For Loops this is second appoarch doesnot working
0

#1

Tell us what’s happening:

Your code so far


function filteredArray(arr, elem) {
  let newArr = [];
  // change code below this line
    for(var i=0; i<arr.length;i++)
{

var counterCheck = arr[i].indexOf(elem);
if(counterCheck==-1){
  delete arr[i];
}
else{
  newArr.push(arr[i]);
}

}  // change code above this line
  return newArr;
}

// change code here to test different cases:
console.log(filteredArray([[3, 2, 3], [1, 6, 3], [3, 13, 26], [19, 3, 9]], 3));

Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 6.2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36.

Link to the challenge:
https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/basic-data-structures/iterate-through-all-an-arrays-items-using-for-loops/


#2

Firstly you’re pushing the entire sub-array, you’re not doing anything with that sub array. Your logic looks like:

  1. Loop through the array of arrays
  2. If the current sub array does not contain elem, delete it (this step is pointless in your code because of the next step, you’re pushing to a new array anyway).
  3. If the current sub array does contain elem, push it to a new array.

So for example

filteredArray([[1,2,3], [1,2,3],[1,2]], 3)

First array contains 3, push to new array.
Second array contains 3, push to new array.
Third array does not contain 3, delete it.

So end result is [[1,2,3],[1,2,3]].

Note that delete does not work the way you think it does, and should not be used with arrays: it is for deleting properties on objects.


#3

got it,now it run perfectly thank you for the help