毎日JavaScriptアルゴリズムの問題(1)
1505 ワード
Implement the function unique_同前order which tars as argment a sequence and returns a list of items without any element with the same value next to each other and preserving the original order of elements.
一つのunique_を実現します.同前order関数は、パラメータとしてシーケンスを受け入れ、リストに戻ります.リストの各項目は他の項目とは異なる値で、元の順序はそのままです.
For example:
一つのunique_を実現します.同前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]
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;
}
まずforサイクル 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
配列方法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]
この二つの方法が分かりました.この問題もすらすらと解決できます.この値は存在しないと判断し、存在しないとpush
は配列中に存在する.他に解決方法がありますか?自分で考えてみましょう.tips:jsの高次関数filterで実現してみましょう.