JavaScript Day7

JavaScript数组的方法(迭代)

// every(函数) 检测数值元素的每个元素是否都符合条件。
// 函数:funtion(item){// item 数组元素}
console.log(arr1.every(function (item) {
// item 数组元素
// console.log(item>0);
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 < 90
    }))

forEach(函数) 数组每个元素都执行一次回调函数。
函数:function(value,index,arr){}
value:数组元素的值
index:索引
arr:数组本身
var arr7 = [];

    arr1.forEach(function (val, index, arr) {
 // console.log(val,index,arr)
 // console.log(val+10)
        arr7.push(val + 10)
    })
    console.log(arr7)
 // for(var i=0;i<arr1.length;i++){
 //     console.log(arr1[i],i,arr1)
 // }
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;
    }))
console.log(arr3.reduce(function (sum, val) {
    sum += val
    return sum
}))
 // reduceRight(函数) 将数组元素计算为一个值(从右到左)
console.log(arr3.reduceRight(function (sum, val) {
    sum += val
    return sum
}))
 ES6新增的方法
 keys() 返回数组的可迭代对象,包含原始数组的键(key)
entires() 返回数组可迭代的对象
    var xxx=arr2.entries();
    console.log(xxx.next().value);
    var yyy=arr2.keys();
    console.log(yyy.next().value);

JavaScript数组的排序方法

sort() 对数组元素进行排序

 var arr2 = [4, 5, 6];
  console.log(arr2.sort());

// 依照 ASCII (字典) 数组的每一项都会执行toString(),得到字符串,对字符串排序

 var arr6 = [4, 5, 6, 40, 50, 60];
    console.log(arr6.sort()); //[4, 40, 5, 50, 6, 60]

2.给sort(函数) 添加函数 比较函数

 function up(a, b) {
        if (a < b) {
 return -1
        } else if (b < a) {
 return 1
        } else {
 return 0
        }
    }
 function down(a, b) {
        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))

JavaScript数组的冒泡排序

升序:将第一个元素于后续元素进行比较如果前一个元素大于后一个元素互换位置下一次拿上一次大的值于后续元素进行比较,如果前一个元素大于后一个元素互换位置,知道确定最大的元素
选出第二大的元素
选出第三大的元素
...
最后两个元素进行对比
下次对比次数比上次对此次数减一

 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)
    }

两个变量互换值

    var a=10;
    var b=20;
    var c;
 c=a;
 a=b;
 b=c;
    // console.log(a,b)

封装

 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));

JavaScript数组的选择排序

// 选择排序:先定义最大值或最小值,然后将每个数组项于最值比较,取最值放到元素的最(左或右)端,层层比较,互换元素下标位置,再赋值。

设:x为最大值,x和每一个数组项进行对比,如果比x大,互换元素的下标

 for (var i = 0; i < arr.length - 1; i++) {
 // 假设最值的索引
 var min = i; //第i个元素为最值
 // min=0;
 for (var j = i + 1; j < arr.length; j++) {
 // j=1 2 3 
 if (arr[j] < arr[min]) {
 min = j;// 取最小值的索引
 // console.log(j)
           }
       }
 var k = arr[i];
       arr[i] = arr[min];
       arr[min] = k;
       console.log(arr);
   }
 // console.log(arr);

封装

 function choose(arr) {
 for (var i = 0; i < arr.length - 1; i++) {
 // 假设最值的索引
 var min = i; //第i个元素为最值
 for (var j = i + 1; j < arr.length; j++) {
 if (arr[j] < arr[min]) {
 min = j;
                    console.log(j)
                }
            }
 var k = arr[i];
            arr[i] = arr[min];
            arr[min] = k;
 // console.log(arr);
        }
 return arr
    }

    console.log(choose(arr));
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值