I’ll attempt to break this down one by one;
line 1: function filteredArray(arr, elem)
Here, 2 parameters are created. The use of
arr within this data structure is for the individual array.
elem is used as a parameter for selecting a number within the array to filter.
line 2: let newArr = ;
This is a new array of individual arrays that have been filtered and do not match the
elem number later on within the data structure. Here it is just setting the value of the variable to an array.
line 3: for (let i = 0; i < arr.length; i++)
Basic for loop.
arr.length is the amount of individual arrays within
arr. In the challenge example above, there is 4 individual arrays within
line 4: if (arr[i].indexOf(elem) < 0)
I would have done this differently. However, this is the filter part of the data structure. What this is saying is, any array within
arr that contains the same number as
elem will be eligible for this if statement. If an array does not include the number of
elem, the array will not be added to newArr.
line 5: newArr.push(arr[i]);
The arrays that meet the above criteria will be pushed to the
newArr variable, storing the arrays that meet the if statement within the
newArr array. So if there were two arrays like
[5, 10, 15], [10, 20, 30], the newArr value would now be [[5,10,15], [10,20,30]].
Ends the function execution and returns the value of newArr to the function caller.
console.log(filteredArray([[3, 2, 3], [1, 6, 3], [3, 13, 26], [19, 3, 9]], 3));
This is using the
elem parameters of the
First, the function is being declared.
Since there are multiple arrays within the
arr parameter, they will need to be declared as arrays.
filteredArray([[number, number, number], [number, number, number]]);
elem parameter is input at the end of the line of code. This is the value that attempts to match with a number within the arrays. If matched, the individual array will be added onto the
newArr array through the
if```` statement.filteredArray([[number, number, number], [number, number, number], number);```