Javascript中数组常用方法总结

Javascript中数组常用方法总结

  1. 创建方式:

    • Array构造函数

    • 字面量

    • Array创建数组的静态方法

      • from: Array.from(类数组对象,映射函数(选),this(选))

        --参数1: 类数组对象,即任何可以迭代的结构,或者一个length 属性和可索引元素的结构
        
        --参数2: 可选的映射函数,可直接增强新数组的值
        
        -- 参数3: 用于指定映射函数的this的值
        
        //eg
        Array.from('Matt');//['M','a','t','t'];
        //对现有的数组执行浅拷贝
        const a1=[1,2,3,4];
        const a2 = Array.from(a1);//a2 = [1,2,3,4];
        // 带有length属性的对象
        const obj = {
          0:1,
          1:2,
          length:2
        }
        Array.from(obj);//[1,2]
        
        // 第二个参数
        const a2 = Array.from(a1,function(x){return x*this.exponent},{exponent:2}); // a2=[2,4,6,8]
        
    • of: Array.of(需要转换成数组的参数) 可以把一组参数转为数组,用于替代es6之前常用Array.prototype.slice.call(arguments)将参数转为数组的笨拙方式

          // eg
          Array.of(1,2,3,4) //[1,2,3,4]
      
  1. 常用方法:

    2.1 改变原数组

    • splice: splice(删除的开始索引,删除的个数,...添加的数据) --返回被删除的数组或者[]

    • shift: shift() 头部弹出 --返回弹出的数据

    • unshift: unshift(插入的数据) 头部插入 --返回插入后数组的长度

    • pop: pop() 尾部弹出 --返回弹出的数据

    • push:push(插入的数据) --返回插入后数组的长度

    • reverse: reverse() 将数组反向排列 --返回调用方法的数组的引用

    • sort:sort(callback) 默认将数组根据字符串的顺序排序,可传入参数进行变更排序方式。--返回调用方法的数组的引用

    • fill: fill(值, 开始索引(选),结束索引(选)) 向已有的数组中插入全部或部分相同的值 ,

            负索引从数组末尾开始计算,可以换成负索引+数组长度 = 真正的索引, 
      
             ---返回调用方法的数组的引用
      
    • copyWithin: copyWithin(插入索引的位置,复制开始的索引(选),复制结束的索引(选))

                         按照指定的范围浅复制数组中的部分内容,然后插入到指定索引开始的位置
      
                        ---返回调用方法的数组的引用    
      

    2.2 不改变原数组

    • slice: arr.slice(开始索引,结束索引) 截取数组某段 --返回截取的数据

    • concat:arr.concat(arr2) 拼接数组 --返回拼接后得到的新数组

    • indexOf: indexOf(查找的元素,查找的开始索引(选填)) 从左到右依次查找--返回查找的索引 或者-1

    • lastIndexOf: lastIndexOf(查找的元素,查找的开始索引(选填)) 从右到左依次查找 --返回查找的索引 或者-1

    • Includes: includes(查找的元素,查找的开始索引(选填)). 从左到右依次查找--返回布尔值

    • toString: toString(); 返回由数组中每个值的等效字符串拼接成的以逗号分隔的字符串

    • valueOf:valueOf();返回数组本身

    • toLocalString:toLocalString()返回由数组中每个值的等效字符串拼接成的以逗号分隔的字符串

    • join: join(指定连接符);返回由数组中每个值的等效字符串拼接成的以指定符号分隔的字符串

    • flat: flat(深度(选,默认1)); 按照指定深度(Infinity)遍历数组,并将所有遍历到的元素或者子元素合并为一个新数组并返回,(注意: flat方法会移除数组中的空项)

    • flatMap: flatmap(callback(currentValue [, index [, array]]),thisArg);

                  使用映射函数映射每个元素,然后将结果压缩成一个新数组,并返回新数组
      

    2.3 迭代方法(对数组每一项[]运行传入函数, 不包括从数组中删除或者从未被赋值的元素)

    • filter:返回 由函数返回true的项组成的数组

    • some:如果执行的函数有一项返回true,则返回true

    • every:如果每一项函数都返回true,则返回true

    • map:返回由每次函数调用的结果构成的数组

    • forEach:无返回值

2.4 迭代器方法:用于检索数组内容

   - keys: Array.keys() 返回数组索引的迭代器
   - values:Array.values() 返回数组元素的迭代器
   - entries: Array.entries() 返回索引/值对的迭代器

2.5 归并方法

  • reduce:

    • reduce(callback(accumulator,currentValue[, currentIndex[, array]])[,initialValue]);

      accumulator: 累加器,上一次回调时返回的累计值

      currentValue: 当前的值

      currentIndex:当前索引

      array:调用reduce的数组

      initialValue: 第一次调用函数的第一个参数的值,如果没有,则使用数组第一个元素,若数组为空,则报错

  • reduceRight:同上,只是reduce是从左到右执行,reduceRight是从右到左执行

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,843评论 6 502
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,538评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,187评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,264评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,289评论 6 390
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,231评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,116评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,945评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,367评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,581评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,754评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,458评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,068评论 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,692评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,842评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,797评论 2 369
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,654评论 2 354