我想在数组中找到两个相邻元素== 1:2或1:3, 不计算第三个元素所需的触发器 它的工作原理应该如此,但它看起来很难看,我怎么能优化呢? 可能我可以在每个迭代中跳过,但是如何?
history["1:2", "1:11", "1:9", "1:6", "1:9", "1:2", "1:3", "1:10", "1:9", "1:3", "1:3"];
function getStats(history) {
trigger = 0;
dfault1 = 0;
$.each(history, function(index, value) {
if (((history[index] == '1:2') || (history[index] == '1:3')) && ((history[index+1] == '1:2') || (history[index+1] == '1:3')) ) {
if (trigger == 0) {
dfault1++;
trigger = 1;
} else {
trigger = 0;
}
} else {
trigger = 0;
}
});
console.log(dfault1);
}
dfault1 = 2 couz
history[5] = '1:2' && history[6] = '1:3' dfault++ (1)
然后
history[9] = '1:3' && history[10] = '1:3' dfault++ (2)
P.S。如果你不理解我的英语,请告诉我,我会更正我的问题
答案 0 :(得分:1)
这是清理它的一种方法。
function getStats(history) {
matches = function(value) {
return value == "1:2" || value == "1:3";
};
default1 = 0;
prev = null;
$.each(history, function(index, value) {
if (matches(value) && matches(prev)) {
default1++;
prev = null;
return true;
}
prev = value;
});
console.log(default1);
}