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.
翻譯:實(shí)現(xiàn)一個(gè)unique_in_order函數(shù)迷扇,該函數(shù)接受一個(gè)序列作為參數(shù),返回一個(gè)列表箕别,列表中的每一項(xiàng)與其他項(xiàng)的值都不相同,并且元素的原始順序保持不變赃阀。
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]
Solution:
var uniqueInOrder=function(iterable){
//your code here - remember iterable can be a string or an array
let result = [];
let last;
for (let i = 0; i < iterable.length; i++) {
if (iterable[i] !== last){
result.push(last = iterable[i]);
}
}
return result;
}
首先f(wàn)or循環(huán)
var a = [1,2,3,4,5];
for(let i = 0; i < a.length; i++) {
console.log(a[i]);
} // 1 2 3 4 5
var b = '12345';
for(let i = 0; i < b.length; i++) {
console.log(b[i]);
} // 1 2 3 4 5
數(shù)組方法push
push()
向Array
的末尾添加若干元素
例如:
var a = [1,2,3,4,5];
var c;
a.push(c = 1);
console.log(a); // [1, 2, 3, 4, 5, 1]
明白了這兩個(gè)方法這道題也就迎刃而解了恕稠。無(wú)非就是判斷這個(gè)值存不存在,如果不存就push
到數(shù)組中季惯。
還有沒(méi)有其他的解決辦法呢咬最?
自己思考一下吧~
tips: 試著用js的高階函數(shù)filter實(shí)現(xiàn)吧翎嫡。