I read that you can remove duplicates from Arrays using Set. I am trying to do this but when i return unique[n] it returns undefined.
It seems like the error is here: unique = currentArr => […new Set(currentArr)];
Is there anything i am missing?
thanks,
yaz
function dblLinear(n) {
//create a counter
counter = 1;
//create an array to store the sequence with 1 as starting
let arr = [1];
unique = currentArr => [...new Set(currentArr)];
//for each index place, do the do two equations and add them to the end of the array
const equation1 = current => 2 * current + 1;
const equation2 = current => 3 * current + 1;
for (let i = 0; i < n; i++) {
let equation1res = equation1(arr[i]);
let equation2res = equation2(arr[i]);
arr.push(equation1res);
arr.push(equation2res);
arr.sort((a, b) => a - b);
unique(arr);
}
//then sort each array into numbers
//and then carry on the loop
//once n = 10, return the value on that array index
return unique[n];
}
console.log(dblLinear(20), 57);
No, your unique function is correct, except the fact it’s missing const.
You have some funky stuff going on here:
for (let i = 0; i < n; i++) {
let equation1res = equation1(arr[i]);
let equation2res = equation2(arr[i]);
// Assuming that const arr = [1]; it has value only for i === 0, the rest is undefined
function dblLinear(n) {
//create a counter
counter = 1;
//create an array to store the sequence with 1 as starting
let arr = [1];
//const unique = currentArr => [...new Set(currentArr)];
//for each index place, do the do two equations and add them to the end of the array
const equation1 = current => 2 * current + 1;
const equation2 = current => 3 * current + 1;
for (let i = 0; i < n; i++) {
let equation1res = equation1(arr[i]);
let equation2res = equation2(arr[i]);
arr.push(equation1res);
arr.push(equation2res);
arr.sort((a, b) => a - b);
//unique(arr);
}
//then sort each array into numbers
//and then carry on the loop
//once n = 10, return the value on that array index
//return unique[n];
console.log(arr);
return arr[n];
}
dblLinear(10);
function dblLinear(n) {
//create a counter
counter = 1;
//create an array to store the sequence with 1 as starting
let arr = [1];
//for each index place, do the do two equations and add them to the end of the array
const equation1 = current => 2 * current + 1;
const equation2 = current => 3 * current + 1;
for (let i = 0; i < n; i++) {
let equation1res = equation1(arr[i]);
let equation2res = equation2(arr[i]);
arr.push(equation1res);
arr.push(equation2res);
arr.sort((a, b) => a - b);
//unique(arr);
}
//then sort each array into numbers
//and then carry on the loop
//once n = 10, return the value on that array index
//return unique[n];
const unique = new Set(arr);
unique;
const back = [...unique];
back;
console.log(unique);
console.log(back);
return back[n];
}
dblLinear(10);