数组去重;
//方法一:
var arr = [5, 2, 2, 4, 3, 3, 2, 4, 1];
if(arr[i] == arr[j]){
arr.splice(j,1); // 判断如果有重复的值; 用数组splice方法删除 后面的那个相同的数;
j--; //注意这里的 j--, 因为删掉一个数后,数组的长度也会减少1;
}
} // 这个方法类似于前面讲到的冒泡,规律差不多的;
}
var arr = [1, 2, 3, 4, 1, 2, 3, 2, 1, 4, 3, 2, 3, 4, 1, 2];
//1 声明一个结果数组
var resultArr = [arr[0]], // 申明一个新数组,用来存不重复的值;
flag;
//2 遍历arr,取出arr中的每个元素,到resultArr中进行依次比較
for (var i = 1; i < arr.length; i++) {
flag = true; //假设当前这个arr[i]可以放入到resultArr中
//3 遍历resultArr:验证
for (var j = 0; j < resultArr.length; j++) {
//需要保证任意一个都不等,才可以放入
if (arr[i] == resultArr[j]) {
flag = false;
//提高效率
break;
}
}
if (flag == true) {
resultArr[resultArr.length] = arr[i];
}
}
console.log(resultArr);
//方法三: // 与第二方式差不多,只不过这个方法是用循环完了里值会等于数组的长度的特性来判断的;
var arr = [5, 0, 0, 4, 0, 3, 2, 0, 1];
var newArr = [arr[0]]; //申明一个新数组;
for(var i = 1; i < arr.length; i++){
for(var j = 0; j < newArr.length; j++){
if(arr[i] == arr[j]){
break; // 如果老数组中有任意一个个与新数组中的元素相等,则跳出循环;j就不会等于newArr.length了;
}
}
if(j == newArr.length){ // 这里如果判断 j 如果等于newArr.length; 说明没有进入上面的那个if判断,说明没有重复的值,
newArr[newArr.length] = arr[i]; // 利用length属性,讲不重复的值放入新新数组中;
}
}
// alert(newArr);
//方法一:
var arr = [5, 2, 2, 4, 3, 3, 2, 4, 1];
for(var i = 0; i < arr.length; i++){ // 遍历数组中的每一项
for(var j = i+1; j < arr.length; j++){ // 相邻的两个数进行比较,if(arr[i] == arr[j]){
arr.splice(j,1); // 判断如果有重复的值; 用数组splice方法删除 后面的那个相同的数;
j--; //注意这里的 j--, 因为删掉一个数后,数组的长度也会减少1;
}
} // 这个方法类似于前面讲到的冒泡,规律差不多的;
}
alert(arr);
var arr = [1, 2, 3, 4, 1, 2, 3, 2, 1, 4, 3, 2, 3, 4, 1, 2];
//1 声明一个结果数组
var resultArr = [arr[0]], // 申明一个新数组,用来存不重复的值;
flag;
//2 遍历arr,取出arr中的每个元素,到resultArr中进行依次比較
for (var i = 1; i < arr.length; i++) {
flag = true; //假设当前这个arr[i]可以放入到resultArr中
//3 遍历resultArr:验证
for (var j = 0; j < resultArr.length; j++) {
//需要保证任意一个都不等,才可以放入
if (arr[i] == resultArr[j]) {
flag = false;
//提高效率
break;
}
}
if (flag == true) {
resultArr[resultArr.length] = arr[i];
}
}
console.log(resultArr);
//方法三: // 与第二方式差不多,只不过这个方法是用循环完了里值会等于数组的长度的特性来判断的;
var arr = [5, 0, 0, 4, 0, 3, 2, 0, 1];
var newArr = [arr[0]]; //申明一个新数组;
for(var i = 1; i < arr.length; i++){
for(var j = 0; j < newArr.length; j++){
if(arr[i] == arr[j]){
break; // 如果老数组中有任意一个个与新数组中的元素相等,则跳出循环;j就不会等于newArr.length了;
}
}
if(j == newArr.length){ // 这里如果判断 j 如果等于newArr.length; 说明没有进入上面的那个if判断,说明没有重复的值,
newArr[newArr.length] = arr[i]; // 利用length属性,讲不重复的值放入新新数组中;
}
}
// alert(newArr);