资讯专栏INFORMATION COLUMN

JavaScript 数组方法对比

opengps / 3156人阅读

摘要:前言提供了多种新增,移除,替换数组元素的方法,但是有些会影响原来的数组有些则不会,它是新建了一个数组。

前言:JavaScript 提供了多种新增,移除,替换数组元素的方法,但是有些会影响原来的数组;有些则不会,它是新建了一个数组。

ps:在开始申明:var l = console.log.bind(console)

新增

1:影响原数组

    let arr = [1,2,3,4];
    arr.push(5)//[1, 2, 3, 4, 5];
    arr.unshift(0)//[0, 1, 2, 3, 4, 5]

2:不影响原数组
使用concat方法:

    let arr = [1,2,3,4];
    arr.concat(5);
    l(arr) //[1,2,3,4]

使用JavaScript 的展开(spread)操作符,展开操作符是三个点(…)

    let arr1 = [1,2,3,4];
    let arr2 = [...arr1,5];
    l(arr2)//[1, 2, 3, 4, 5]
    l(arr1)//[1, 2, 3, 4, 5]
删除

1:影响原数组

    let arr = [1,2,3,4];
    l(arr.pop());//4 取到最后一个
    l(arr)//[1,2,3] 原数组被改变
    l(arr.shift());//1 取到第一个
    l(arr)//[2,3] 原数组被改变

使用Array.splice()方法

    let arr = ["a","b","c","d"];
    arr.splice(1,2)//1代表从索引为1的数开始("b"),2代表删除("b","c")这两个元素,也就实现了删除这个目的
    l(arr)["a","d"]

2:不影响原数组
使用Array.filter方法 基于原数组创建一个新数组,新数组仅包含匹配特定条件的元素

    let arr = [1,2,3,4];
    l(arr.filter(e => e !== 3))//[1, 2, 4] ,e 代表arr中的每一项
    l(arr)//[1, 2, 3, 4] 原数组未被改变

使用Array.slice方法

    let arr = ["a","b","c","d"];
    l(arr.slice(1,2)); //["b"]
    l(arr);//["a", "b", "c", "d"]
替换

1:影响原数组
使用Array.splice()方法

    let arr = ["a","b","c","d"];
    l(arr.splice(1,2,"e","f"))//["b", "c"]
    l(arr)//["a", "e", "f", "d"]

2:不影响原数组
使用Array.map()方法

    let arr = ["a","b","c","d"];
    let arr1= arr.map(item => {
        if (item == "b") {
            item = "f"
        }
        return item
    } )
    l(arr1)//["a", "f", "c", "d"]
    l(arr)//["a","b","c","d"]

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/81438.html

相关文章

  • JS 数组循环遍历方法对比

    摘要:循环方法方法不改变原数组方法会给原数组中的每个元素都按顺序调用一次函数。筛选出过滤出数组中符合条件的项组成新数组代码方法方法为数组中的每个元素执行一次函数,直到它找到一个使返回表示可转换为布尔值的值的元素。 showImg(https://segmentfault.com/img/bV2QTD?w=1600&h=500); 前言 JavaScript 发展至今已经发展出多种数组的循环遍...

    BlackFlagBin 评论0 收藏0
  • JavaScript面向对象中的严格模式个人分享

    摘要:严格模式严格模式的概念所谓严格模式就是对中的一种限制性更强的方式属于代码的一种强制规则来规范代码的格式简单的说就是必须按照严格模式的规则书写代码否则就会报错严格模式修正了一些引擎难以优化的错误同样的代码有些时候严格模式会比非严格模式下更加快 严格模式 严格模式的概念 所谓严格模式就是对JavaScript中的一种限制性更强的方式. 属于代码的一种强制规则,来规范代码的格式简单的说就是...

    lordharrd 评论0 收藏0
  • 5分钟了解JSON那些事儿

    摘要:简介是对象表示法的缩写是一种数据格式而不是一种编程语言用来表示结构化数据是的一个严格子集并不从属于很多编程语言都可以用数据格式语法语法可以表示以下三种类型的值简单值字符串数值布尔值但是不支持对象数组不支持变量函数对象实例简单值字符串数字布尔 JSON 简介 JSON是JavaScript Object Notation(JavaScript对象表示法)的缩写 JSON是一种数据格式,...

    ad6623 评论0 收藏0
  • Javascript实现数组去重方法及效率对比

    摘要:前言其实网上搜索这些方法一堆堆的,之所以还来写一遍主要是因为自己习惯一种之后就忘了其他方法怎么实现,就写一写总结一下,顺便做个测试看看哪个效率最高,为了更好展示效果,我会先总结认为比较好的方法,后面统一测试。 前言 其实网上搜索这些方法一堆堆的,之所以还来写一遍主要是因为自己习惯一种之后就忘了其他方法怎么实现,就写一写总结一下,顺便做个测试看看哪个效率最高,为了更好展示效果,我会先总结...

    tulayang 评论0 收藏0
  • 简析前端学习python3的基础

    摘要:元组是静态数组,它们不可变,且其内部数据一旦创建便无法改变。元组缓存于运行时环境,这意味着我们每次使用元组时无须访问内核去分配内存。 以下是整理的JavaScript和python的基础区别的整理: 字符串、列表、元组、字典、集合、函数 字符串 声明一个字符串 python str = 123 str = 123 Tips: 如果是三个引号的话,那么在py中就是注释的意思 ...

    summerpxy 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<