JS 中 数组的常用操作

遍历数组

     map 

        map方法的作用在于处理 流式数据,比如数组。

        map() 方法  返回一个新数组,数组中的元素为原始数组元素 调用函数 处理后的值

        map( ) 不会改变原始数组!!!!!

        array.map(function(currentValue,index,arr), thisValue)

        currentValue 必须。当前元素的值

        index可选。当前元素的索引值

        arr可选。当前元素属于的数组对象

        thisValue 可选。对象作为该执行回调时使用,传递给函数,用作 "this" 的值。

        如果省略了 thisValue ,"this" 的值为 "undefined"

        注意:map 方法 回调函数需要 return!!!!否则就是 undefined;

                     map() 不会对空数组进行检测

                     map() 不会改变原始数组

map 

     reduce 

        reduce() 方法对累加器和数组中的每个元素(从左到右)应用一个函数,最终合并为一个值。

        array.reduce(function(total, currentValue, currentIndex, arr), initialValue)

            total 必需初始值, 或者计算结束后的返回值

            currentValue 必需。当前元素

            currentIndex 可选。当前元素的索引

            arr  可选。当前元素所属的数组对象。

            initialValue 可选。传递给函数的初始值

  reduce 

         filter

        filter方法可以筛除数组和类似结构中不满足条件的元素,并 返回 满足条件 的元素组成的数组

        filter() 方法创建一个 新的数组新数组中的元素是通过检查指定数组中符合条件的所有元素。

        array.filter(function(currentValue,index,arr), thisValue)

        参数

            currentValue 必须。当前元素的值

            index可选。当前元素的索引值

            arr可选。当前元素属于的数组对象

            thisValue可选。对象作为该执行回调时使用,传递给函数,用作 "this" 的值。

            如果省略了 thisValue ,"this" 的值为 "undefined"

  filter

        forEach

            forEach() 方法用于调用数组的每个元素,并将元素传递给回调函数。

            array.forEach(function(currentValue, index, arr), thisValue)

            function(currentValue, index, arr)必需。 数组中每个元素需要调用的函数。

            currentValue必需。当前元素

            index可选。当前元素的索引值。

            arr可选。当前元素所属的数组对象。

            thisValue可选。传递给函数的值一般用 "this" 值。

            如果这个参数为空, "undefined" 会传递给 "this" 值

            注意:无法中途退出循环,只能用return退出本次回调,进行下一次回调。

                它总是返回 undefined值,即使你return了一个值。

forEach的最后一个参数

        every

           用于检测数组所有元素是否都符合指定条件(通过函数提供)。

            every() 方法使用指定函数检测数组中的所有元素:

            如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。

            如果所有元素都满足条件,则返回 true。

            array.every(function(currentValue,index,arr), thisValue),参数跟forEach一样。

            返回值是布尔类型

            注意:如果数组中检测到有一个元素不满足,则整个表达式返回 false,且剩余的元素不会再进行检测。

            如果所有元素都满足条件,则返回 true。

every

        some 

            some() 方法用于检测数组中的元素是否满足指定条件(函数提供)。

            some() 方法会依次执行数组的每个元素:

            如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。

            如果没有满足条件的元素,则返回false。

            array.some(function(currentValue,index,arr),thisValue)

some  

查询数组中元素

     includes

        arr.includes(searchElement)

        arr.includes(searchElement, fromIndex)

        includes() 方法用来判断一个数组是否包含一个指定的值,如果是返回 true,否则false。

        searchElement必须。需要查找的元素值。

        fromIndex可选。从该索引处开始查找 searchElement。如果为负值,则按升序从 array.length + fromIndex 的索引开始搜索。默认为 0。

includes

     find

        array.find(function(currentValue, index, arr),thisValue)

        find() 方法为数组中的 每个元素 都调用一次函数执行,

        返回值:find 返回 数组或类似结构中满足条件的 第一个元素

            currentValue 必需。当前元素

            index可选。当前元素的索引值

            arr可选。当前元素所属的数组对象

            thisValue可选。 传递给函数的值一般用 "this" 值。

            如果这个参数为空, "undefined" 会传递给 "this" 值

        当数组中的元素在测试条件时返回 true 时, find() 返回符合条件的元素,之后的值不会再调用执行函数,如果没有符合条件的元素返回 undefined

find

        findIndex

            findIndex() 方法返回传入一个测试条件(函数)符合条件的数组第一个元素位置

            findIndex() 方法为数组中的每个元素都调用一次函数执行:

            当数组中的元素在测试条件时返回 true 时, findIndex() 返回符合条件的元素的索引位置,之后的值不会再调用执行函数。

            如果没有符合条件的元素返回 -1

            和 find 基本一样,就是 find 是返回 符合条件的元素,findIndex 是返回下标

findIndex

        indexOf

            array.indexOf(searchvalue,start)

            该方法将从头到尾地检索数组,看它是否含有对应的元素。开始检索的位置在数组 start 处或数组的开头(没有指定 start 参数时)。如果找到一个 item,则返回 item 的第一次出现的位置。开始位置的索引为 0。

            注意: indexOf() 方法区分大小写。

            返回值:返回数组中首次出现某个指定的元素位置,也就是下标。

            注意:indexOf()不能识别NaN

            searchvalue必需。规定需检索的字符串值。

            start可选的整数参数。规定在字符串中开始检索的位置。它的合法取值是 0 到 string Object.length - 1。如省略该参数,则将从字符串的首字符开始检索。

indexOf

增加删减方法

         扩展预算符  ...

 扩展预算符  ...

push  改变原来的数组

        array.push(item1item2, ..., itemX)

        向数组的末尾添加一个或多个元素,并 返回新的长度

push  

unshift 改变原来的数组

        array.unshift(item1,item2, ..., itemX)

        向数组的开头添加一个或更多元素,并返回新的长度

unshift

concat 不改变原来的数组

        array.concat(array2,array3,...,arrayX)

        concat() 方法用于连接两个或多个数组。该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。

         返回值:返回一个新的数组。

concat 

splice  改变原来的数组

        array.splice(index,howmany,item1,.....,itemX)

        splice() 添加/删除数组元素

       返回值:如果从 array 中删除了元素,则返回的是 删除后 的数组。

        注意:添加是在开始的元素前面添加的!!!

            index必需。规定从何处添加/删除元素。

            该参数是开始插入和(或)删除的数组元素的下标,必须是数字。

            howmany必需。规定应该删除多少元素。必须是数字,但可以是 "0"

            如果未规定此参数,则删除从 index 开始到原数组结尾的所有元素。

            item1, ..., itemX可选。要添加到数组的新元素

splice  

        slice 不改变原数组

            array.slice(start,end)

               返回值:返回一个新的数组,包含从 start 到 end (不包括该元素)的 arrayObject 中的元素。

            start必需。规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。

            end可选。规定从何处结束选取。该参数是数组片断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。

slice 

    pop 改变原来的数组

        array.pop()

       pop() 方法删除一个数组中的 最后的一个元素,并且 返回这个元素

        返回值 是  删除的这个元素!!!!

pop 

    shift 改变原来的数组

        array.shift()

        shift()方法删除数组的 第一个元素,并 返回这个元素

        返回值  是  删除的这个元素!!!!

shift 

     copyWithin 改变原来的数组

        array.copyWithin(target, start, end)

          用于从数组的指定位置拷贝元素到数组的另一个指定位置中。

            target必需。复制到指定目标索引位置。

            start可选。元素复制的起始位置。

            end可选。停止复制的索引位置 (默认为 array.length)。如果为负值,表示倒数。

copyWithin 

    fill 改变原来的数组

        array.fill(value, start, end)

        用于将一个固定值替换数组的元素。

        value必需。填充的值。

        start可选。开始填充位置,默认为0

        end可选。停止填充位置 (默认为 array.length)

fill 

转换方法

    join

        array.join(separator)

        join() 方法用于把数组中的所有元素通过指定的分隔符进行分隔放入一个字符串,返回生成的字符串

        separator可选。指定要使用的分隔符。如果省略该参数,则使用逗号作为分隔符。

join

    split(字符串转数组)

   string.split(separator,limit)

    用于把一个字符串分割成字符串数组

    separator可选。字符串或正则表达式,从该参数指定的地方分割 string Object。

    limit可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。

    注意: 如果把空字符串 ("") 用作 separator,那么 stringObject 中的每个字符之间都会被分割。

split

 Array.of( ) 

    将一组值转换为数组

 Array.of

Array.from( ) 

     Array.from方法用于将 两类对象 转为 真正的数组:类似数组的对象(array-like object)和可遍历(iterable)的对象(包括 ES6 新增的数据结构 Set 和 Map).

Array.from( ) 

    toLocaleString

        数组转字符串

        返回一个表示数组元素的字符串。该字符串由数组中的每个元素的 toLocaleString() 返回值经调用 join() 方法连接(由逗号隔开)组成。

toLocaleString

排序方法

    reverse  改变原来的数组

        颠倒数组中元素的顺序。

        array.reverse()

reverse  

    sort  改变原来的数组

        对数组的元素进行排序。

        array.sort(sortfunction)

sort  

数组实例的 entries(),keys() 和 values() 

    返回一个遍历器对象,可以用for...of循环进行遍历

    keys()是对键名的遍历、values()是对键值的遍历,entries()是对键值对的遍历。

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