• js——数组操作


    把教程里的api看了一遍,感觉记住了,又感觉没有记住。。。后来发现,如果给自己提需求,或许不错。想想对于一个数组,可能会用到哪些操作呢?基本的操作就是增删改查吧(有点像sql)

    1. 创建数组               

    空数组:var arr = []

    包含undefined元素[undefined x 3]

    - var arr = []; arr.length = 3;

    - var arr = [1,2,3]; delete arr[i];//delete每个元素后

    - var arr = Array.apply(null, {length: 3});

    - arr = arr.map(function(){});//map中函数默认返回undefined

    - var arr = new Array(3);//不推荐使用,3表示长度

    - var arr = new Array[3];//错误!

    正常元素[1,2,3]

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

    - var arr = new Array(1,2,3);

    - var arr = new Object([1,2,3]);

    - var arr = Array.apply(null, [1,2,3]);

    - arr = arr.map(function(item, index){return index + 1;})

    2. 增            

    对数组的修改,修改的操作直接就体现在原数组上

    var arr = [1,2,3];

    - 从前面添加[4,5,1,2,3]

    var len = arr.unshift(4, 5);//可以插入多个,可以插入一个新数组作为元素,返回新数组长度

    var delArr = arr.splice(0, 0, 4, 5);//splice(访问的位置,删除的元素个数,添加的元素),返回[被删除的元素]数组

    - 从中间添加[1,4,5,2,3]

    var delArr = arr.splice(1, 0, 4, 5);

    - 从后面添加[1,2,3,4,5]

    var len = arr.push(4,5);//返回新数组长度

    arr2 = [4,5]; var newArr = arr.concat(arr2);//不对原来的数组做修改

    3. 删               

    var arr = [1,2,3];

    - 删除第一个[2,3]

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

    var delArr = arr.splice(0, 1);//splice不给插入的元素

    - 从中间删除一个[1,3]

    var delArr = arr.splice(1, 1);

    - 删除最后一个[1,2]

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

    var delArr = arr.splice(arr.length - 1, 1);

    4. 改               

    var arr = [3,2,1];

    - 反转reverse

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

    - 排序sort

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

    var newArr = arr.sort(function(a, b){

    return a < b;//true则交换位置

    });//newArr = arr = [3,2,1]

    5. 查               

    var arr = [1,2,1];

    - indexOf 元素第一次出现的位置

    var index = arr.indexOf(1);//0

    - lastIndexOf 元素最后一次出现的位置

    var index = arr.lastIndexOf(1);//2

    - 某个位置的元素

    var num = arr[1];//num = 1

    - slice(start, end)查找start到end之间的元素

    var subArr = arr.slice(0,1);//subArr = [1]; 不包含end位置的元素

    var subArr = arr.slice(-3,-2);//subArr = [1]; 可以取负值,最后一位为-1

    6. 转换成字符串     

    var arr = [1,2,3];

    - var str = arr.toString();//"1,2,3" 默认中间有,连接

    - var str = arr.join("*");//"1*2*3"  用连接符连接元素成字符串

    7. 不用循环对各元素做统一处理

    var arr = [1,2,3];

    - every():判断arr中每个元素是否都满足条件,不对空数组进行检测,不改变原数组

    var flag = arr.every(function(num){

    return num > 0;

    });//true

    - some():判断arr中是否有元素满足条件

    var flag = arr.some(function(num){

    return num < 0;

    });//false

    - forEach():对每元素执行一次回调函数

    var newArr = [];

    arr.forEach(function(item, index){

    newArr.push(index + ": " + item);

    //return newArr;//没有返回到外部

    });//newArr = ["0: 1","1: 2","2: 3"]

    - map():通过指定函数处理数组的每个元素,并返回处理后的数组

    var arr = [1,2,3];

    var newArr = arr.map(function(item){

    return item - 1;//返回值做为新数组的一个元素

    });//newArr = [0,1,2]

    - fill():用一个数填充数组各位

    var arr = [1,2,3];

    var newArr = arr.fill(1);//newArr = arr = [1,1,1]

  • 相关阅读:
    HTTP协议图解
    .NET 发布网站步骤
    使用php在服务器端生成图文验证码
    SQLServer复习文档1(with C#)
    理解 JavaScript 原型 / 原型链
    浅谈瀑布流
    懒加载
    jQuery ajax
    jQuery 动画效果 与 动画队列
    jQuery 事件
  • 原文地址:https://www.cnblogs.com/coolqiyu/p/7529602.html
Copyright © 2020-2023  润新知