# Basic Data Structures - Iterate Through All an Array's Items Using For Loops

Tell us what’s happening:
Describe your issue in detail here.
I do not understand how the argument and parameters of this function works .
I don’t understand the request of the (elem) and understanding the result of my console log

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

newArr.push(arr[i]);
}
}
// Only change code above this line
return newArr;
}

console.log(filteredArray([[3, 2, 3], [1, 6, 3], [3, 13, 26], [19, 3, 9]], 3));
``````

User Agent is: `Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36 Edg/115.0.1901.200`

Challenge: Basic Data Structures - Iterate Through All an Array’s Items Using For Loops

Does this solution work?

Aside, filteredArray function of this task, takes 2 arguments.

• First argument is an array of array.
• Second argument is a number, as a red flag not to include in your array.

Example, `filteredArray([[3, 2, 3], [1, 6, 3], [3, 13, 26], [19, 3, 9]], 3)` should return `[]`

It means you have you are given array of such:

``````[3,2,3]
[1,6,3]
[3,13,26]
[19,3,9]
``````

then, looking at your 2nd argument, i.e. 3.
So, all these array unfortunately has number 3. None of this pass, then you return an empty array.

1 Like

thanks so much WongYC-66 I get your explanation as 3 as the arguments against the arrays, but sincerely i dont understand how it works. i would appreciate further explanation, thanks

If the value of the ‘elem’ argument is not found in a sub-array, the indexOf(elem) method returns -1. In that case, the push method in the code adds that sub-array (found on the current index in the iteration process) in newArr.

If you try out the following statement:

``````console.log(filteredArray([[10, 8, 3], [14, 6, 23], [3, 18, 6]], 18));
``````

you should get printed two sub-arrays:

``````[[10, 8, 3], [14, 6, 23]
``````

The sub-array that contains the ‘elem’ “18” is not printed.

1. iterate thru those arrays of number.
2. if the array does not includes the “elem”, add to newArr.
3. return newArr.

Tools i would used:

``````Array.forEach()
Array.includes()
Array.push()
``````
1 Like

This topic was automatically closed 182 days after the last reply. New replies are no longer allowed.