如何实现以序列作为参数并返回不包含具有相同值的任何元素的项的列表,并且保留元素的原始顺序的函数?

例如:

1. uniqueInOrder('AAAABBBCCDAABBB') == ['A', 'B', 'C', 'D', 'A', 'B']
2. uniqueInOrder('ABBCcAD')         == ['A', 'B', 'C', 'c', 'A', 'D']
3. uniqueInOrder([1,2,2,3,3])       == [1,2,3]

最佳答案

您可以从给定的数据中获取一个数组,如果给出了数组,则获取了该数组,如果给出了字符串,则通过检查最后一个a和实际元素b并获取字符并过滤该数组,并返回不相等的元素。

const uniqueInOrder = v => Array.from(v).filter((b, i, { [i - 1]: a }) => a !== b);

console.log(uniqueInOrder('AAAABBBCCDAABBB')); // ['A', 'B', 'C', 'D', 'A', 'B']
console.log(uniqueInOrder('ABBCcAD')); // ['A', 'B', 'C', 'c', 'A', 'D']
console.log(uniqueInOrder([1, 2, 2, 3, 3])); // [1, 2, 3]
.as-console-wrapper { max-height: 100% !important; top: 0; }

关于javascript - 如何编写一个在JavaScript中按顺序返回参数的函数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55676678/

10-09 14:59