0
点赞
收藏
分享

微信扫一扫

JS学习第七天

秦瑟读书 2022-04-19 阅读 180
javascript

数组对象的方法(迭代)

什么是数组迭代?
答:数组迭代就是对数组的每一项都进行相应的操作。

例:
var arr1=[1,2,3];
var arr2=[4,5,6];
var arr3=[“A”,“B”,“C”,“D”,“E”,“F”,“G”];

every(函数) 检测数值元素的每个元素是否都符合条件
函数: //function(item){// item 数组元素}
console.log(arr1.every(function(item){
//item 数组元素
console.log(item);// 1
console.log(item>0);// true
console.log(item < 0);// false
return item>0
}))

some(函数) 检测数组元素中是否有元素符合指定条件
console.log(arr1.some(function(item){
item:数组元素
// console.log(item>0);
return item>10
}))

filter(函数) 检测数值元素,并返回符合条件所有元素的数组
console.log(arr1.filter(function(item){
//item:数组元素
return item>10&&item< 20
}))

forEach() 数组每个元素都执行一次回调函数
函数 function(value,index,arr){}
//value:数组元素的值
index:索引
arr:数组本身
arr1.forEach(function(val,index,arr){
// console.log(val,index,arr);
// console.log(arr7);
})

map() 通过指定函数处理数组的每个元素,并返回处理后的数组
console.log(arr1.map(function(item){
return item=10
}))

reduce(函数) 将数组元素计算为一个值(从左到右
function(total,val){}
total:总数
val:每一项的值
console.log(arr1.reduce(function(sum,val){
sum+=val;
return sum/9;
}))

toString() 把数组转换为字符串,并返回结果
console.log(arr3.toString());
// valueOf() 返回数组对象的原始值
console.log(arr3.valueOf());
//

JS数组的排序方法

-sort()
-冒泡排序
-选择排序

sort() 对数组元素进行排序 (理解不了就背下来 要记住)
var arr6=[4,5,6,40,50,60]
给sort(函数) 添加函数 比较函数

function up(a,b){ //up也可以写paixu 现在是从小到大升序 所以是用了up
if(a > b){
return -1
}else if(b > a){
return 1
}else{
return 0
}
}

functiondown(a,b){ // 降序用down
if(a > b){
return -1
}else if(b > a){
return 1
}else{
return 0
}
}
// 简写方式
function up(a,b){
return a-b
}
function down(a,b){
return b-a
}
console.log(arr6.sort(up));
console.log(arr6.sort(down));

冒泡排序

升序:将第一个元素与后续元素进行比较,如果前一个元素>后一个元素,值大的元素向后顺位,下一次拿这个值大的值于后续元素进行比较,如果前一个>后一个,就换位置,直到确定最大的元素
选出第二大的元素
选出第三大的元素


最后两个元素进行比较
下次对比的次数 比 上次对比的次数减一

 var arr=[3,4,2,1] 
 for(var j=o; j< arr.length; j++){
     console.log(arr[i]);// 打印所有的元素
     for(var j=0; j < arr.length; j++){
         conslole.log(arr[j])
         //需要arr[i]和 arr[j]进行比较
         if(arr[j] > arr[j+1]){
             //互换位置
             console.log("互换位置");
             var k;
             k= arr[j];
             arr[j] = arr[j+1];
             arr[j+1] = k;
         }
     }
     console.log(arr);
 }
 //将外层for循环拆解
    //当i=0时
    // for (var j = 0 ;j < arr.length -1; j++){
    //     //console.log(arr[j]);
    //     // 需要arr[j] he arr[j+1]进行比较
    //     if (arr[j] > arr[j+1]){
    //         //互换位置
    //         console.log('互换位置');
    //         var k;
    //         k=arr[j];
    //         arr[j] = arr[j+1];
    //         arr[j+1] = k;
    //     }
    // }
    // console.log(arr);

    // 当i=1时;
    for (var j = 0; j<arr.length-2; j++){
        //console.log(arr[j]);
        // 需要arr[j] he arr[j+1]进行比较
        if (arr[j] > arr[j+1]){
            //互换位置
            console.log('互换位置');
            var k;
            k=arr[j];
            arr[j] = arr[j+1];
            arr[j+1] = k;
        }
    }
    console.log(arr);
 
    // 当i=2时;
    for (var j=0; j < arr.length-3; j++){
        //console.log(arr[j]);
        //需要arr[j] 和 arr[j+1]进行比较
        if (arr[j] > arr[j+1]){
            //互换位置
            console.log('互换位置');
            var k;
            k = arr[j];
            arr[j] = arr[j+1];
            arr[j+1] = k;
        }
    }
    console.log(arr);
    //封装
    function babel(arr){
        for (var i= 0; i < arr.length -1; i++){
            //循环比较的次数
            for (var j = 0; j < arr.length -i -1; j++){
                // console.log(arr[j]); 
                //需要arr[j] 和 arr[j+1]进行比较
                if (arr[j] > arr[j+1] ){
                    // 互换位置
                    //console.log('互换位置');
                    var k;
                    k = arr[j];
                    arr[j] = arr[j+1];
                    arr[j+1] =k;
                }
            }
            // console.log(arr);
        }
        return arr
    }
    var arr2=[1,2,4,5,1,2,1,3,5,1,81,282,18]
    console.log(babel(arr));
    console.log(babel(arr2));
    
    将两个变量互换值  可以再另外声明一个变量
    var a=10;
    var b=20;
    var c;
    c=a;
    a=b;
    b=c;
    console.log(a,b);

选择排序

选择排序::先定义最大值或最小值,然后将每个数组项与最值比较,取最大值放到元素的最左或者最右端,层层比较,互换元素下标位置,再赋值
(假设x为最大值, x和每个数组项进行对比,如果比x大,互换元素的下标)

var arr=[3,4,2,1];
for(var i=0; i < arr.length-1; i++){
    //循环多少次
    // 假设最值的索引
    var max = i; // 第一个元素为最值
    for(var j=j+1; j < arr.length; j++){
        if(arr[j] > arr[max]){
            max = j
        }
    }
    var k=arr[i];
    arr[i]=arr[max];
    arr[max]=k;
}
console.log(arr);
 
// 封装
function choose(arr){
    var arr=[3,4,2,1];
    for(var i=0; i < arr.length-1; i++){
    //循环多少次
    // 假设最值的索引
    var max = i; // 第一个元素为最值
    for(var j=j+1; j < arr.length; j++){
        if(arr[j] > arr[max]){
            max = j
        }
    }
    var k=arr[i];
    arr[i]=arr[max];
    arr[max]=k;
    // console.log(arr);
}
return arr
}
举报

相关推荐

0 条评论