数组去重:来自两层循环检测重复元素法
Array.prototype.distinct = function () {
var arr = this,
result = [],
i,
j,
len = arr.length;
for (i = 0; i < len; i++) {
for (j = i + 1; j < len; j++) {
if (arr[i] === arr[j]) {
j = ++i;//跳到了下个循环,只要后面的值有和当前的值相同的话,当前循环的push语句就不会执行,就跳到下次循环
}
}
result.push(arr[i]);
}
return result;
}
var arra = [1, 2, 3, 4, 4, 1, 1, 2, 1, 1, 1];
arra.distinct();
(function () {
var i; length = 5;
for (i = 0; i < length; i++) {
if (i == 2) {
++i;//当i为2的时候,后面的代码是执行的,输出3,然后i加了1,变成了4,那就是当i=3的时候没有执行循环
}
console.info("u", i);
}
})()
第一段代码里面i自增了后,后面的代码就不执行了,跳到下次循环,
而第二段代码,里面i自增了,后面的console还是执行的,这是为啥?
谢邀~
首先说continue;
其次去重;