Bonfire Sorted Union - GJSmith3rd/FreeCodeCamp-BootCamp GitHub Wiki
Contact me
Gilbert Joseph Smith III
Github | FreeCodeCamp | CodePen | LinkedIn | Blog/Site | E-Mail
Details
- Difficulty: 2/5
Write a function that takes two or more arrays and returns a new array of unique values in the order of the original provided arrays.
In other words, all values present from all arrays should be included in their original order, but with no duplicates in the final array.
The unique numbers should be sorted by their original order, but the final array should not be sorted in numerical order.
Check the assertion tests for examples.
Remember to use Read-Search-Ask if you get stuck. Try to pair program. Write your own code.
Useful Links
Problem Script:
function unite(arr1, arr2, arr3) {
return arr1;
}
unite([1, 3, 2], [5, 2, 1, 4], [2, 1]);
Problem Explanation:
- The program has to return a new array of unique values from two original arrays in the order they show up. So there is not sorting required, and no duplicates.
Hint: 1
- Since you have no idea how many parameters were passed, it would be best to loop through the
argumentsbefore looping through the arrays.
Hint: 2
- I used loops, you can use something else like map, reduce or others if you want.
Hint: 3
- You will have to check if the current value is already on the array to be returned for every value.
Spoiler Alert!
Solution ahead!
Code Solution:
function unite(arr1, arr2, arr3) {
// Creates an empty array to store our final result.
var finalArray = [];
// Loop through the arguments object to truly made the program work with two or more arrays
// instead of 3.
for (var i = 0; i < arguments.length; i++) {
var arrayArguments = arguments[i];
// Loops through the array at hand
for (var j = 0; j < arrayArguments.length; j++) {
var indexValue = arrayArguments[j];
// Checks if the value is already on the final array.
if (finalArray.indexOf(indexValue) < 0) {
finalArray.push(indexValue);
}
}
}
return finalArray;
}
Code Explanation:
- Check comments in code.