Js数组

muchenli / 2023-07-22 / 原文

    Js数组方法
    1.把数组转换为字符串:toString()   join('分隔符')
    2.pop()  删除数组最后一个元素    返回被删除的值
    3.push()  在数组末尾添加一个元素  返回数组长度
    4.shift()  删除数组首个元素   返回被删除的值
    5.unshift()  在数组头部添加一个元素  返回数组长度
    6.arr[0]  下标修改元素内容
    7.arr[arr.length] 添加元素
    8.splice()  拼接数组:第一个参数(2)定义了应添加新元素的位置(拼接)。
                         第二个参数(0)定义应删除多少元素。
                         其余参数(“Lemon”,“Kiwi”)定义要添加的新元素。
                         返回一个包含已删除项的数组
    9.concat()合并(连接)数组:concat() 方法不会更改现有数组。它总是返回一个新数组
    10.slice() 裁剪数组 slice() 方法创建新数组。它不会从源数组中删除任何元素slice() 可接受两个参数,第一个参数是从哪里开始裁剪,第二个参数是裁剪几个
    11.sort()  数组排序  最强大的数组方法之一 奇怪的是:它是以以字母顺序对数组进行排序
    关于数字排序: 如果数字按照字符串来排序,则 "25" 大于 "100",因为 "2" 大于 "1",通过一个比值函数来修正此问题:.sort(function(a,b){return a -b }) 比值函数凭借正负号就能将所有数按顺序排列出来
    return a - b 正序    return b - a  倒序
                    1.以字母顺序进行排序:.sort()
                    2.以数字顺序进行排序:.sort(function(a,b){return a-b})
                    3.以随机顺序排序数组: .sort(function(a, b){return 0.5 - Math.random()});
                    4.查找最高(或最低)的数组值: .sort(function(a,b){return a-b})排序后根据下标[0][arr.length-1]就可以获取到最小和最大值  (效率低不建议使用)
                    5.Math.max.apply()  查找数组中的最大值 function myArrayMax(arr){return Math.max.apply(null, arr)}  Math.max.apply([1, 2, 3]) 等于 Math.max(1, 2, 3)
                    6.Math.max.apply() 查找数组中的最小值
                    7.自定义查找最大最小值函数: function myArrayMax(arr) {
                                                 var len = arr.length  
                                                 var max = -Infinity;
                                                 console.log(max)
                                                 while (len--) {
                                                    if (arr[len] > max) {
                                                        max = arr[len];
                                                    }
                                                }
                                                 return max;
                                                }
                    8.排序对象数组: 对比属性值 cars.sort(function(a, b){return a.year - b.year}); 如果数组里的数据是这样:
                                    var cars = [
                                           {type:"Dolvo", year:2016},
                                           {type:"Aaab", year:2001},
                                           {type:"CMW", year:2010}].sort(function(a, b){
                                   var x = a.type.toLowerCase();
                                   var y = b.type.toLowerCase();
                                    if (x < y) {return -1;}
                                    if (x > y) {return 1;}
                                     return 0;
                                     }).sort(function(a,b){return a.year - b.year})
 
    12. reverse() 反转数组
 
 一、判断某个变量是否是数组?  
    typeof (会识别成Object)
    Array.isArray()  不支持老版本的浏览器,可以自定义一个方法isArray() 其原理就是constructor,假如对象原型包含单词 "Array" 则返回 true
    instanceof Array  (可以判断是否是数组)
 
二、数组迭代方法对每个数组项进行操作(数组的循环):
    1.forEach() 方法为每个数组元素调用一次函数(回调函数)