数组常用的几种方法

数组的声明方式:

  1. 字面量声明方式

var arr = [1,2,3,4];

   2.构造函数声明方式

var arr2 = new Array(10);
// 数组的最大长度是2**32 -1
arr2 = new Array(2 ** 32 - 1);
// 传递一个参数,且为数字, 这个数字代表的就是数组的长度
// 元素为空

数组分为

稀疏数组:元素个数不等于数组长度

密集数组:元素个数等于数组长度

js中数组是可以动态改变的,元素类型没有限制.
如果传入的数字在索引范围内,就是索引,否则就是属性名称.

修改数组的元素

        arr[索引] = 值
        获取数组中的元素

        arr[索引]


delete 关键字删除对象中的属性

        同样也可以删除数组中的元素(不是真正意义上的删除)
        删除后长度不会发生改变,会变成一个稀疏数组

数组中的常用方法:

  1. 添加

arr.push(要添加的值); //从后面添加,返回添加后的数组长度

arr.unshift(要添加的值);//从前面添加,返回添加后的数组长度

    2.删除

arr.pop(); //删除最后一个,返回删除的元素

arr.shift(); //删除第一个,返回删除的元素

arr.splice(开始位置,操作个数,替换元素....); //任意位置添加,删除,返回删除元素的集合

  3.截取数组

arr.slice(开始位置(第一个),结束位置(最后一个));  //不会修改数组本身,放回截取后的数组

  4.查找数组中是否含有某一个元素

arr.indexOf(元素); //返回元素在数组中的索引,如果不存在返回 -1.

  5.数组合并

var arr2 = ['ni', 'hao', 'p'];
arr = arr.concat(arr2);//concat不会修改数组本身,返回合并后的数组

  6.数组元素合并成字符串

var arr = ['千', '年', '等', '一', '回'];
var str = arr.join(拼接符); //不会改变数组本身,返回根据拼接符拼接后的字符串

  7.数组转为字符串

arr.toString(); //不会改变数组本身,数组元素用  ,  进行拼接.

  8.翻转数组

arr.reverse();

  9.填充数组

arr.fill(要填充的值);

 数组高阶函数:

ES5新增函数,都不会修改数组本身

arr.map();
arr.filter();
arr.forEach();
arr.reduce();

//让数组中的元素,按照某种规律统一修改
var arr = [1,100,304,42,51]
        var newArr = arr.map(function(item, index, arr2) {
            // item: 元素
            // index: 索引
            // arr: 数组本身
            return item + 10;
        })

var newArr2 = arr.filter(function(item) {
            // 如果返回true, 当前元素返回
            // 如果返回false, 当前元素不反回
            return item > 50;
        })

//单纯的循环数组
arr.forEach(function(item, index, arr) {
            item += 10;
            // arr[index] = item + 10;
        })

reduce
//类似递归: getSum(getSum(getSum(arr[0], arr[1]), arr[2]), arr[3]);

var sum = arr.reduce(function (a, b) {
            return a * b;
        });

sort排序:

 会修改数组本身

 不传参数:元素默认从小到大排序(默认把元素转换为字符串,按照ASCII编码排序)

 传一个函数,函数接收俩个参数X,Y

      如果函数 return X < Y,从小到大排序

                    return Y > X,从大到小排序


版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

评论

精彩评论
  • 2019-03-25 09:03:39

    看似很复杂,其实仔细看还是能懂的

  • 2019-04-08 09:19:15

    发现博主的文章写得真的太有技术感了,怪不得博主这个文章更新文章好慢

Top

分享: