美文网首页
第一章数组

第一章数组

作者: 不曾滑落的忧伤 | 来源:发表于2020-02-26 23:16 被阅读0次

    1.什么是数组?

    数组是一个线性集合,通过索引进行存取,索引可能是数字,用来计算偏移量。

    1.1  js 数组与其他语言数组的区别

    1.1.1  效率上不如其他语言

        js本着万物皆对象的宗旨,所以数组是一种特殊的对象,对象的索引必须是字符串,所以数组的索引是字符串,其他语言是数字类型,在效率上不如其他语言。

    1.1.2  js 数组可以不必为同一种数据类型

    1.1.3 js 数组的长度可以超过指定的长度,超过后数组会自动扩展

    2.创建新数组

    2.1 创建数组有两种方法   第一种 字面量方式 var arr =[2,3,4,5];  速度比较快。第二种 var arr = new Array(),括号内传入一个参数,表示数组长度,数组的每一个值都是undefined,输入多个参数表示数组的内容。

    特别提醒: 判断一个对象是否是数组用 Array.isArray()

     2.2 对数组进行操作

    2.2.1 读写数组

    有两种方法 ,第一种 for 循环对数组进行赋值

    var nums = [];

    for(var i=0;i<100;++i){
        nums[i] = i+1;
    }

    第二种,字符串生成数组

    var str = 'wo shi yi ge hao ren';

    console.log(str.split( ' ')) 接收一个分隔符,用来划分数组的个数

    特别提醒:在for循环里++i 和  i++没有区别

    2.2.2 对数组的整体操作

    第一种: 赋值 

    将一个数组赋值给另一个数组,数组是引用类型的,引用类型的直接赋值是浅拷贝,改变新的变量会影响上一个变量。需要进行深拷贝。深拷贝的方法有四种 :1.循环赋值 2. 扩展运算符 3.slice(0) 4.concat()

    2.3 存取函数

    1.查找 

    indexof() 用来查找目标数组是否存在目标。存在返回第一个匹配目标的索引,不存在返回-1,lastIndexOf()存在返回倒数第一个索引,不存在返回-1.

    2. 数组转字符串

    1.join() 可接收参数,作为数组转字符串的链接符,默认就逗号

    2.toString() 只能是逗号,不接收参数,作为js默认方法,输入会进行默认调用。

    3.由已知数组创建新数组

    concat() 合并多个数组,创新一个新数组。可以是数组或者字符串.从左到右连接。

    splice() 截取一个数组组成新数组1.第一个参数死索引的起点,第二个参数 在删除截取的时候是长度,在增加插入的时候是0,增加插入的时候有第三个参数,为要增加的值。

    4.数组的方法

    push() 向后增加 pop() 从后删除

    unshift() 向前增加 shift() 从 前删除

    返回值 插入值返回数组的长度,删除值返回的是被删除的元素。

    5.数组排序

    reverse() 反向

    sort() 默认是以字符串的字典排序的,数值类型的排序需要传入一个比较规则的函数。如若不传,会以字符串的规则排数字。

    6.迭代器

    不生产新数组的方法

    array.forEach(规则函数)

    every() 接受一个返回布尔值的函数,全部为真才为真,返回值是一个布尔值

    some() 接受一个布尔值的函数,一真为真

    reduce() 接受一个函数,返回一个值,该方法从一个累加值开始,不断对累加值和数组中的后续元素执行该函数。可以用来求和 和连接字符串。

    reduceRight() 从由向左。

    7.生产新数组的方法

    map()

    flitter()类every 接受一个布尔值的函数,返回为真的集合。

    2.3 二维数组和多维数组

    js只支持一维数组,通过在数组里保存数组的形式创建二维或多维数组。

    创建二维数组,让一维数组的每一个元素也是一个数组

    相关文章

      网友评论

          本文标题:第一章数组

          本文链接:https://www.haomeiwen.com/subject/yxpgchtx.html