zoukankan      html  css  js  c++  java
  • JS数组及其常用方法

    数组

    检验是否为数组的方法 Array.isArray()

    是数组返回:true

    不是数组返回:false

    数组中天生自带一个属性:length  代表了当前数组的长度

    (JavaScript数组长度是可变的,也就是说不是固定的)

    数组是一个复杂的数据类型,在比较的时候是比较的地址

    console.log([] == []);  // false

    数组的方法

    对于一个方法,我们需要关注:

    ①调用方式,需要传递什么参数

    ②方法执行完成之后的返回结果是什么,有没有返回值

    ③关注这个方法调用完成之后,有没有改变原数组

    栈方法:先进后出,后进先出

    push():往数组的末尾添加项,参数可以为任意多个,返回修改之后原数组的长度,原数组发生了变化

    var arr = [];
    console.log(arr.push("king", "age", 89));    // 3
    console.log(arr);    // ["king", "age", 89]

    pop():往数组的末尾删除一项,返回被删除的那一项,原数组发生改变 arr.pop()

    队列方法:先进先出,后进后出

    push():往数组末尾添加项,参数可以为任意多个,返回修改之后的原数组的长度,原数组发生了变化  arr.push("king", "age", 89)

    shift():从数组的最前面删除一项,返回被删除的项,原数组发生改变。

    unshift():往数组的最前面添加元素,并且返回修改之后的数组长度,原数组发生改变。

    var arr = [1, 2, 3];
    var res = arr.unshift("king", {age: 18});
    console.log(res, arr);    // 5  ["king", {age: 18}, 1, 2, 3]

    reverse():将数组按下标反向排序,返回反向之后的数组,原数组发生改变。

    var arr = [18, false, "", undefined, null, NaN, {}, []];
    console.log(arr.reverse());    // [[], {}, NaN, null, undefined, "", false, 18]

    contact():将多个数组进行合并,返回一个新的合并之后的数组,所有的原数组都不会发生改变。

    // 将括号中的数组依次合并到arr这个数组的末尾,并且不会合并重复项
    var arr = ["king", "age", 89],
        arr1 = [1, 2, 3],
        arr2 = ["hello", "前端"],
        arr3 = [1, 2, 3];
    console.log(arr.concat(arr1, arr2, arr3));    // ["king", "age", 89, 1, 2, 3, "hello", "前端", 1, 2, 3]
    console.log(arr, arr1, arr2, arr3);    // ["king", "age", 89]  [1, 2, 3]  ["hello", "前端"]  [1, 2, 3] 

    排序的方法

    sort():是按照unicode编码进行排序的,对于10以内的数据可以进行排序(默认是一个升序)原数组发生改变。

    如果我们需要实现任何数字的排序,我们得在sort()方法中传递一个函数进来

    var arr = [1, 9, 5, 25, 18, 23];
    var res = arr.sort(function (a, b) {
        // return b - a;     //降序
        // return a - b;    //升序
    });
    console.log(res);

    slice(start, end):从数组中截取下标为start到end的项,包含start 不包含end;返回截取之后的数组。当只有一个参数的时候,默认从这个位置截取到末尾;如果参数是0,相当于将原数组copy了一份(不写和这个一样)

    将数组变成一个字符串

    arr.toString()  可以将数组变成字符串,但是不能自己指定分隔符

    join():将数组按照指定的连接符拼接成为字符串,返回一个拼接之后的字符串,原数组没有发生改变

    splice() 增  删  改

    经过该方法操作之后的原数组会发生改变,返回结果都是一个数组

    splice(n, m, [[kx]]);
    // n代表开始的下标位置
    // m代表个数
    // [[kx]]用来新增或者替换的元素

    删除 返回被删除的项

    splice(1, 2)  从下标为1的位置删除两项

    splice(1)  从下标为1的位置开始删除到最后一项

    splice(0) / splice()  其实就等于将数组剪切了一份

    替换 arr.splice(n, m, newValue);

    返回被替换的那个元素,从n处删除m个元素,并且删除的元素用newValue进行替换,并且以数组的形式返回了删除的项

  • 相关阅读:
    设计模式之原型模式
    【转载】 吵翻了!这张图里到底是人还是狗?心理学家这样说
    【转载】 DeepMind 提出元梯度强化学习算法,显著提高大规模深度强化学习应用的性能
    ubuntu18.04 安装wine64出现错误: X 64-bit development files not found.
    ubuntu18.04 源码方式安装wine , 警告,libxrender 64-bit development files not found, XRender won't be supported.
    【转载】 信息如何像零食、金钱一样掌控你的大脑
    图像处理算法 之 滤波 模糊(基于OpenCV)
    图像处理之FPN校正
    ISP-黑电平校正(BLC)
    ISP基础(0y):图像传感器
  • 原文地址:https://www.cnblogs.com/crazier/p/14100484.html
Copyright © 2011-2022 走看看