uniqueInOrder

codewars 7kyu

by trentHarlem

HTML

<p>
reeduce a string or array into a new array with no sequential duplicates.
<br>
<br>
console.log(uniqueInOrder('aaAAABBB'),` returns ["a", "A", "B"]`)

</p>

JavaScript

const uniqueInOrder = iterable => [...iterable].filter((l, i, arr) => l != arr[i - 1])

// WORKING   //////////////////////////
/* function uniqueInOrder(iterable) {
  return [...iterable].slice().filter((l, i, arr) => l != arr[i - 1])
} */
// returning the arg in an array with spread operator removes the need to check for primitive type. the spread operator will spread the string or the elements of an array into the new [...array]


/* function uniqueInOrder(iterable) {
  if (typeof(iterable) === 'string') iterable=iterable.split('')
    return iterable.slice().filter((l, i, arr) => l != arr[i - 1])  
} */


/* function uniqueInOrder(iterable) {
  if (typeof(iterable) === 'string') {
    return iterable.split('').slice().filter((l, i, arr) => l != arr[i - 1])
  } else {
    return iterable.slice().filter((l, i, arr) => l != arr[i - 1])
  }
} */
console.log(uniqueInOrder('aaAAABBB'))
console.log(uniqueInOrder(['a', 'a', 'a', 'z','z','z','z','z',]))