Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

writing a function that return a list without any elements that are the same nex

ID: 3819186 • Letter: W

Question

writing a function that return a list without any elements that are the same next to each other, maintaining the original order. having some issues getting work correctly, here's what i have so far:

var order = function(iterable) {

var freq = [ ];

var count = 1;

for(var i = 0; i < iterable.length; i++) {

count = 1;

}

for(var j = i+1; j < iterable.length; j++) {

if(iterable[i] == iterable[j]) {

count++;

}

else {

freq.push(iterable[j]);

}

return freq;

}

}

order([A,A,a,B,B,c, A, D, D]);

(should output: [A,a,B,c,a,D])

Explanation / Answer

Following function should do the job :

var order = function(iterable) {
   var newIterable = [ ];
   var to_add = iterable[ 0 ];
   for(var i = 1; i < iterable.length; i++) {
       if( iterable[i] == iterable[i-1] ){
           to_add = iterable[i];
       }
       else {
           newIterable.push(iterable[j]);
           to_add = iterable[ i ];
       }
   }
   newIterable.push( to_add );
   return newIterable;
   }
}

order([A,A,a,B,B,c, A, D, D]);
(outputs: [A,a,B,c,A,D])