请考虑这个数组:
for pattern in training_data(pattern['sentence'])
words.extend(w)
documents.append((w, pattern['class']))
if pattern['class'] not in classes:
classes.append(pattern['classes'])
将“5”作为带有“1”值的最长条纹的最佳方法是什么?
非常感谢你的帮助!
答案 0 :(得分:7)
您可以使用.reduce()
创建一个新数组,在找到0
时获取0
,或者增加其中的最后一项。
然后使用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));