Unique In Order
问题:
Implement the function unique_in_order which takes as argument a sequence and returns a list of items without any elements with the same value next to each other and preserving the original order of elements.
For example:
uniqueInOrder('AAAABBBCCDAABBB') == ['A', 'B', 'C', 'D', 'A', 'B']
uniqueInOrder('ABBCcAD') == ['A', 'B', 'C', 'c', 'A', 'D']
uniqueInOrder([1,2,2,3,3]) == [1,2,3]
翻译(来自有道翻译):
实现函数unique_in_order,该函数以一个序列作为参数,返回一个没有任何元素的项目列表,这些元素彼此之间没有相同的值,并且保留元素的原始顺序。
For example:
uniqueInOrder('AAAABBBCCDAABBB') == ['A', 'B', 'C', 'D', 'A', 'B']
uniqueInOrder('ABBCcAD') == ['A', 'B', 'C', 'c', 'A', 'D']
uniqueInOrder([1,2,2,3,3]) == [1,2,3]
个人解题代码:
//思路:for循环遍历iterable字符串
//当后一个字母与前一个字幕部一样时将当前字母放到tmp中,最后输出tmp
var uniqueInOrder=function(iterable){
var tmp = [];
for(var i = 0 ; i<iterable.length ; i++){
if(iterable[i] !=iterable[i+1]){
tmp.push(iterable[i])
}
}
return tmp
}
高亮回答:
var uniqueInOrder = function (iterable)
{
return [].filter.call(iterable, (function (a, i) { return iterable[i - 1] !== a }));
}