この配列を考えてみてください:Javascript配列のスジを数える最も良い方法は何ですか?
let tab = [0,0,0,1,1,1,0,0,0,0,1,0,1,1,1,1,1]
「1」の値を持つ最長連勝として「5」を取得するための最良の方法は何ですか?
ご協力いただきありがとうございます。
この配列を考えてみてください:Javascript配列のスジを数える最も良い方法は何ですか?
let tab = [0,0,0,1,1,1,0,0,0,0,1,0,1,1,1,1,1]
「1」の値を持つ最長連勝として「5」を取得するための最良の方法は何ですか?
ご協力いただきありがとうございます。
0
が見つかったときに0
を取得する、またはその中の最後の項目をインクリメントする新しい配列を作成するのに、.reduce()
を使用できます。
次に、Math.max
を使用して最大数を探します。
let tab = [0,0,0,1,1,1,0,0,0,0,1,0,1,1,1,1,1];
let streaks = tab.reduce((res, n) =>
(n ? res[res.length-1]++ : res.push(0), res)
, [0]);
console.log(streaks.join(","));
console.log(Math.max(...streaks));
ここでは、コードのES5のバージョンがあります。
let tab = [0,0,0,1,1,1,0,0,0,0,1,0,1,1,1,1,1];
let streaks = tab.reduce(function(res, n) {
if (n) res[res.length-1]++;
else res.push(0);
return res;
}, [0]);
console.log(streaks.join(","));
console.log(Math.max.apply(Math, streaks));
あなたは最高とはどういう意味ですか、あなたは何を試してみましたか? – Xufox