博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JS的内置对象系列:Array(一)
阅读量:6716 次
发布时间:2019-06-25

本文共 1459 字,大约阅读时间需要 4 分钟。

日常开发过程中,发现自己对很多原生方法都不知道,有些早已实现的方法,却傻乎乎自己去实现,因此萌生了总结和练习JS内置对象方法的想法。

以下内容可能并不有趣,请谨慎观看?,参考自MDN

Array对象的属性

  1. Array.length

    这个大家都再熟悉不过啦,表示数组长度~

  2. Array.prototype

    数组对象的原型~

Array对象的内置方法

  1. Array.prototype.copyWithin(target,start,end)

    该方法解释起来似乎不太好描述,简单来说,copyWithin用于把从目标数组Array拷贝一部分出来,并把这一 部分放入target指向的位置(target,start,end都为整数),而且不会改变数组长度!!!也就是说,如果拷贝的那部分放入新数组时,如果长度超出原数组长度,那么多余长度的那部分会被忽略,不会继续加入到新数组中
    示例代码:
    copyWithin

    代码中有一段注释,也是比较关键的一点,该函数做的操作是把拷贝出来的数据替换掉target所指位置的原来的元素,注意,是替换,原来target所在位置的元素在新数组中不再存在!!

  2. Array.prototype.concat()

    该方法用于连接多个数组或者非数组值,并且返回一个新数组。
    具体看示例:
    array.concat()

    该方法的参数有一点需要解释,传入的多个参数中,如果是数组类型,则将它的元素复制一份并push到新数组中,若是其他类型,则直接当作元素push到新数组中。重点:concat的运算过程是重新复制一份内容传入新数组,因此新数组和旧数组的内存地址是不同的,对新数组做的改变并不会影响到原来的数组,但是!注意这个但是!我说三遍但是!这条原则是基于所有数组元素都是基本类型,如果说某一个元素是引用类型,那么concat所复制的也只不过是这个引用类型的一个引用,指向的是同一个内存地址!总结:新数组的内存地址和旧数组不一样,但是新数组内引用类型元素和旧数组内相对的那个引用类型元素是指向同一内存地址!,PS:最后,假如你的参数和旧数组都不含有引用类型,你可以使用concat来进行数组深度拷贝~

  3. Array.of(element0[, element1[, ...[, elementN]]])

    该方法用于创建一个新的Array实例,传入的参数将依次成为新数组的元素。该方法和数组的构造函数区别在于,Array(5)返回[,,,,],而Array.of(5)返回[5]请看示例代码:

    Array.of()

  4. Array.isArray(obj)

    不多说了,判断输入的参数obj是否是数组类型,如果是,返回true,否则返回
    false

  5. Array.from(arrayLike[, mapFn[, thisArg]])

    该方法为ES2015新增的方法,返回一个新的数组对象,其参数有三个:
    第一个参数

    为数组类型或者类数组类型的对象,是必选参数,`arraylike`,顾名思义,要与数组结构类似。一般来说,有以下几种情况:一个满足以`数字为键,并且拥有length属性的对象`,es6新增的数据结构`set` 和 `map`,当然别忘了`字符串对象`~,它当然也是`arraylike`~

    第二个参数

    可选参数,一旦你指定了该参数,你的数据会经过该函数处理后再返回

    第三个参数

    可选参数,指定from方法运行时的this环境

    上代码~~

    Array.from

细心的你,可能还发现,新的数组去重了呢?!是咋回事呢?这和Array.from    可没有关系噢,请移步 ES6 Set数据结构~

转载地址:http://fmelo.baihongyu.com/

你可能感兴趣的文章
进程控制(一)
查看>>
jcarousel 图片滚动css
查看>>
一个最简单的linux hello world模块
查看>>
【机器学习】--xgboost初始之代码实现分类
查看>>
golang ubuntu开发环境
查看>>
ArcGIS Server 10.2 实战(三)图层标注及图例中文显示乱码的解决
查看>>
Win7关机时弹出对话框,提示你想要的信息
查看>>
Linux初学(三)
查看>>
java中的链式编程
查看>>
正确率、召回率、F值
查看>>
kuangbin专题十二 HDU1078 FatMouse and Cheese )(dp + dfs 记忆化搜索)
查看>>
多行文本超出显示省略号
查看>>
转载~基于比较的排序算法的最优下界为什么是O(nlogn)
查看>>
在本机通过SQL远程操作数据库
查看>>
StringMVC返回字符串
查看>>
Windows完成端口网络模型
查看>>
CSS Hack整理
查看>>
leetcode 28. Implement strStr()
查看>>
nginx 服务器重启命令,关闭 (转)
查看>>
实用的正则表达式
查看>>