美文网首页
Javascript基础随笔整理(一):array

Javascript基础随笔整理(一):array

作者: 凡夫俗子___ | 来源:发表于2020-01-15 16:35 被阅读0次

    引用MDN注释: JavaScript的 Array 对象是用于构造数组的全局对象,数组是类似于列表的高阶对象。

    一、创建数组(随便看看就行)

    两种方式:
    1、字面量;

    let arr = [];

    2、Array构造器;

    两种声明方法:
    new Array(element0, element1, …elementN);
    new Array(arrayLenth);

    什么都不传:
    let arrNew = new Array();  =>  [];

    二、方法(这才是重点嘛)

    1、length

    length属性作为数组一个重要的属性,众所周知;但是平时开发中,使用它的频率还是很低的。主动设置length长短,会对数组有什么样的影响呢?我们一起看看。但是,个人觉得,了解即可。

    就说两个特点吧~

    1、数组中“empty”元素,使用Object.(keys|values)方法遍历,会自动清除;

    两种情况下:a)声明索引大于数组本身; 

    length也会跟着改变

    b)初始length比较大,元素没有全部声明;

    2、上面声明了一个过大length,那么声明一个过小的length呢?

    很明显了,删除了超过的元素,初始化length属性;

    说完length属性,其他的基础方法我们分为两部分整理:一种是改变原数组的方法;一种是不改变原数组的方法。那么,改变的一个重要根据,就是length属性。

    在这之前介绍三个es6新方法:
    Array.from() 把类数组变成数组;
    Array.isArray() 判断是不是数组;
    Array.of() 添加任意参数,并返回一个新数组;

    2、改变原数组的方法;

    1、copyWithin(target, start, end):数组内,从target开始覆盖,覆盖内容为:start <= 覆盖内容  <end
    target:目标索引;
    start:复制元素开始索引,不填为0,即从数组开始复制;
    end:复制元素结束索引,不填为复制到数组最后;

    Ps:以上参数负数,即为倒数第几个

    2、fill(valuestartend):数组内,更改为value,更改部分:start <= 更改部分  <end;
    value
    :新值;
    start和end取决更改范围;

    MDN实例

    3、pop():删除最后一个元素,返回此元素;

    4、push():数组最后增加一(多)个元素,返回新数组length属性;

    5、reverse():颠倒顺序;

    6、shift():删除第一个元素,并返回此元素;

    7、unshift():数组开头增加一(多)个元素,并返回新数组length;

    8、sort(compareFunction):排序,返回新数组,不复制;
    compareFunction(firstEl, secondEl):firstEl和secondEl,比较return

    9、splice(start, delCount, item1…itemN):删除N个或增加一个元素;
    start:开始位置;
    delCount:不大于0,则再start位置后增加item…等N个元素;否则,再start后,删除delCount个元素;然后增加item…个元素;

    3、不改变原数组的方法;

    1、concat(item1…itemN):一个数组和任意个参数并返回新数组,参数有数组则再其后拼接,否则作为元素;

    2、includes(_include, _fromIndex):判断是否包含_include;返回true|false;(通用方法,类数组也可以用)
    _include: 要搜索的元素;
    _fromIndex: 开始搜索索引;

    3、join(_separator):链接所有元素,返回新字符串;(如果一个元素为undefinednull,它会被转换为空字符串。)
    _separator:连接符;

    4、slice(start, end):数组内,抽取并返回一个新数组;

    5、indexOf(_item):寻找元素_item, 返回索引,与之相应的lastIndexOf(),是从最后一位往前寻找;

    MDN中还有toString()和toLocaleString(),方法,是通用的方法,各种类型自身都存在,这里就不详细描述了。

    4、迭代方法;

    相信我,为了你代码能好好“活着”,千万别再遍历的时候,改变元素数组!!!!!!

    1、forEach(start, end):除了抛出异常以外,没有办法中止或跳出循环;如果非要中止或跳出,则可以配合filter()提前过滤,然后遍历。

    2、entries():返回一个数组迭代器对象。
    用next()方法,获取键值;

    3、every(_callback, _thisArg):每个元素是否满足_callback返回值,返回true|false;

    4、some(_callback_thisArg):至少有一个元素是否满足_callback返回值,返回true|false;与every逻辑相同;

    5、filter(_callback_thisArg):选择满足_callback的元素,组成新数组并返回;

    6、find(_callback,_thisArg):找到第一个满足_callback的元素并返回,否则返回undefined;fineIndex(): 索引,否则范围-1;

    7、keys()|values():遍历数组索引(key)或元素(value),返回新数组;

    8、map(_callback,_thisArg):遍历,并返回修改后新数组,原数组不变;

    原数组不改变

    9、reduce(_callback,_thisArg):从左往右依次执行_callback,并把执行后的值依次向下传递;
          reduceRight(_callback,_thisArg):同上,只是顺序从右至左;

    相关文章

      网友评论

          本文标题:Javascript基础随笔整理(一):array

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