数组的排序及去重
数组去重
方法一:
双层循环,外层循环元素,内层循环时比较值
值相同时,则删去这个值
注意点 : 删除元素之后,需要将数组的长度也减1.
function abandon(random){
for(var i = 0;i<random.length;i++){
for (var j = i+1;j<random.length;j++) {
if (random[i]==random[j]) {
//如果第一个等于第二个,splice方法删除第二个
random.splice(j,1);
--j;
}
}
}
return random;
}
var a=[1,4,6,2,6,8,9,3,9,1,4,6,7,8,0,2];
var random_new=abandon(a);
console.log(random_new);
方法二:
- 创建一个新的数组存放结果
- 创建一个空数组
- for循环时,每次取出一个元素与对象进行对比,如果这个元素不重复,则把它存放到新数组中
说明:至于如何对比,就是每次从原数组中取出一个元素,然后到对象中去访问这个属性,如果能访问到值,则说明重复。
function newArr(array){
//一个新的数组
var arrs = [];
//遍历当前数组
for(var i = 0; i < array.length; i++){
//如果临时数组里没有当前数组的当前值,则把当前值push到新数组里面
if (arrs.indexOf(array[i]) == -1){
arrs.push(array[i])
};
}
return arrs;
}
var arr = [1,1,2,5,5,6,8,9,8];
console.log(newArr(arr))
数组排序
交换两个变量的值
需要第三个变量来帮忙
var one = 20;
var two = 40;
var three = two;
two = one;
one = three;
console.log(one,two);
function compare(arr){
for (var i=0;i<arr.length-1;i++) {
for (var j=i+1;j<arr.length;j++) {
if (arr[i]<arr[j]) {
var mp=arr[i];
arr[i]=arr[j];
arr[j]=mp;
}
}
}
return arr;
}
var a=[1,5,7,3,9,0,4,7,9,3,5,2];
console.log(compare(a));