What's wrong with my code?
function longestConsec(strarr, k) {
var currentLongest = "";
var counter = 0;
var outPut = [];
if(strarr.length === 0 || k > strarr.length || k <= 0){
return "";
}
for(var i = 0; i < strarr.length; i++){
if(strarr[i] > currentLongest){
currentLongest = strarr[i];
}
}
while(currentLongest !== strarr[counter]){
counter = counter + 1
}
for (var j = 0; j < k; j ++){
outPut = outPut.push(strarr[counter + j]);
}
outPut = outPut.join("");
return outPut;
}
I keep on getting "outPut.push is not a function".
Array push functions returns the length of the array after pushing.
So, in your code
outPut = outPut.push(strarr[counter + j]);
outPut is now a number, not an array, so the second time through the loop, outPut no longer has a push method.
A simple solution is to change that line to
outPut.push(strarr[counter + j]);
Array.push
adds one or more elements to the end of an array and returns the new length of the array.
And you have this line:
outPut = outPut.push(strarr[counter + j]);
You're adding an element to outPut.push(strarr[counter + j]);
and then reassigning outPush
to the length of the array.
You should only call the push
method on the array and a new element will be added:
for (var j = 0; j < k; j ++){
outPut.push(strarr[counter + j]);
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With