JS 4-18

78 阅读1分钟

JavaScript数组的方法(迭代)

var arr1 = [1, 2, 3, 10, 20, 30, 50, 80, 99];
var arr2 = [4, 5, 6];
var arr3 = ["A", "B", "C", "D", "E", "F", "G"];

every(函数)

检测数值元素的每个元素是否都符合条件。


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(函数)

数组每个元素都执行一次回调函数

var arr7 = [];
    arr1.forEach(function (val, index, arr) {
        // console.log(val,index,arr)
        // console.log(val+10)
        arr7.push(val + 10)
    })
    console.log(arr7)

map()

通过指定函数处理数组的每个元素,并返回处理后的数组。

console.log(arr1.map(function (item) {
        return item + 10
    }))

reduce(函数)

将数组元素计算为一个值(从左到右)。

console.log(arr1.reduce(function (sum, val) {
        sum += val;
        return sum / 9;
    }))

reduceRight(函数)

将数组元素计算为一个值(从右到左)。

console.log(arr3.reduceRight(function (sum, val) {
        sum += val
        return sum
    }))

排序

sort()

对数组元素进行排序

 var arr = [4, 5, 6, 1, 50, 80, 99, 2, 3, 'x', 10, 20, 30, "E", "F", "G", "a", "b"];
    var arr2 = [4, 5, 6];
    var arr3 = ["A", "B", "C", "D", "E", "F", "G"];
    var arr5 = ["你好", 'a', 'b', 'c', 6, 5, 4]
    // sort() 对数组元素进行排序  
    console.log(arr2.sort());
    console.log(arr3.sort());
    console.log(arr5.sort());
var arr6 = [4, 5, 6, 40, 50, 60];
function up(a,b){
        return a-b
    }
    function down(a,b){
        return b-a
    }
    console.log(arr6.sort(up))//升序
    console.log(arr6.sort(down))//降序

冒泡排序

for (var i = 0; i < arr.length - 1; i++) {
        // 循环比较的次数
        for (var j = 0; j < arr.length - i - 1; j++) 
        {
            if (arr[j] > arr[j + 1]) {
                var k;
                k = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = k;
            }
        }
        console.log(arr);
    }

选择排序

for (var i = 0; i < arr.length - 1; i++) {
        var max = i; 
        // max=0;
        for (var j = i + 1; j < arr.length; j++) {
          
            if (arr[j] > arr[max]) {
              
            }
        }
        var k = arr[i];
        arr[i] = arr[max];
        arr[max] = k;
        console.log(arr);
    }
    // console.log(arr);