zoukankan      html  css  js  c++  java
  • JS数据结构——Array数组

    数组Array

    创建:

    1.使用方括号[ ]进行创建和初始化

    var arr=[]   //创建一个空数组
    var arr=[1,2,3]   //创建一个包含数字的数组

    2.使用Array构造函数

    var arr=new Array()   //创建空数组
    var arr=new Array(1,2,3)   //创建包含数字的数组
    var arr=new Array(10)   //创建长度为10的数组

    3.判断是否为数组Array.isArray(arr)

    var arr=[1,2,3];
    Array.isArray(arr)   //true

    存取函数

    不会产生新数组:

    1.查找元素indexOf()、lastIndexOf()

    var arr=[1,2,3,4,1];
    arr.indexOf(1)   //0
    arr.lastIndexOf(1)   //4

    2.数组转字符串join()、toString()

    var arr=["a ","b","c"]
    arr.join();   //a,b,c
    arr.toString()   //a,b,c

    不带逗号的连接:join("")

    var arr=['a','b','c'];
    arr.join("")   //abc

    会产生新数组

    1.连接arr1.concat(arr2)

    var arr1=[1,2,3];
    var arr2=[4,5,6];
    arr1.concat(arr2);   //[1,2,3,4,5,6]
    arr2.concat(arr1);   //[4,5,6,1,2,3]

    2.截取splice(index,length)

    var arr=[1,2,3,4,5,6];
    var part=arr.splice(3,3);   //[4,5,6]

    可变函数

    1.添加元素push()、unshift()

    var arr=[1,2,3];
    arr.push(4);   //[1,2,3,4]
    arr.push(['a','b','c'])   //[1,2,3,4,['a','b','c']]
    arr.unshift(0);   //[0,1,2,3]
    arr.unshift(['a','b','c'])   //[['a','b','c'],1,2,3]

    2.删除元素pop()、shift()

    var arr=[1,2,3];
    var back=arr.pop();   //3
    var pre=arr.shift();   //1

    3.替换元素splice(index,length,new_arr)

    var arr=[1,2,3];
    var arr1=arr.splice(0,1,'a');   //['a',2,3],arr1=[1]

    4.反序reverse()

    var arr=[1,2,3];
    arr.reverse();   //[3,2,1]

    5.排序sort(),按字典顺序对元素进行排序

    var arr=[3,2,4,8,1];
    arr.sort();   //[1, 2, 3, 4, 8]

    默认按照从大到小的顺序进行排列,可添加排列函数

    function cmp(a,b){
        return b-a;
    }
    var arr=[3,2,4,8,1];
    arr.sort(cmp);   //[[8, 4, 3, 2, 1]]

    迭代器方法

    不产生新数组

    1.forEach(fn)对数组的每个元素执行fn

    var arr=[1,2,3];
    arr.forEach(function(i){console.log(i*i)});   //1 4 9

    2.every(fn),数组的每个元素均使得fn返回true,则every返回true

    var arr=[2,4,6,8];
    arr.every(function(i){return i%2==0;})   //true

    3.some(fn),数组中存在元素使得fn返回true

    var arr=[1,2,3,5];
    arr.some(function(i){return i%2==0;})   //true

    4.reduce(fn),对数组中的元素进行累计fn运算

    var arr=[1,2,3];
    var sum=arr.reduce(function(res,cur){return res+=cur;},0)   //6,对数组元素求和
    
    var s=['a','b','c'];
    var str=s.reduce(function(res,cur){return res+=cur;},'')   //abc,连接字符串

    5.reduceRight(fn),反向数组累计fn运算

    var s=['a','b','c'];
    var str=s.reduceRight(function(res,cur){return res+=cur;},'')   //cba,反向连接字符串

    生成新数组

    1.arr.map(fn),对数组元素执行fn,并返回结果数组

    var arr=[1,2,3];
    var new_arr=arr.map(function(i){return i*i})   //[1,4,9]

    2.arr.filter(fn),数组过滤,返回包含使得fn为true的元素的数组

    var arr=[1,2,3,4,5,6];
    var new_arr=arr.filter(function(i){return i%2==0;})   //[2,4,6]
  • 相关阅读:
    「golang」go-micro指定consul地址
    「postgres」无数据则插入,有数据不做插入
    「postgres」导出数据以及分割数据
    「postgre」调整表结构
    「postgre」查看DB的物理占用空间
    「postgre」INT最大值
    「postgre」服务重启
    「golang」关于TIME_WAIT优化
    深入理解Spring Boot属性配置文件
    springboot 中的commandLineRunners接口
  • 原文地址:https://www.cnblogs.com/cff2121/p/12636601.html
Copyright © 2011-2022 走看看