1. JS常用方法-數(shù)組篇

        共 4092字,需瀏覽 9分鐘

         ·

        2021-08-25 14:37

        4ef9f2db17eef3936e991c310c7b7dbe.webpf6ac694f54910da9571bab7ea46c8b97.webp

        會(huì)改變?cè)瓟?shù)組的方法


        以下七種

        push(),pop(),shift(),unshift(),splice(),sort(),reserve(),我自己比較常用的有unshfit(),splice()


        01 -?添加數(shù)組元素方法


        ????push()方法

        ????在數(shù)組結(jié)尾處向數(shù)組添加一個(gè)新的元素(其余元素索引未改變),參數(shù)為被添加元素

        let fruits = ['蘋(píng)果','香蕉','橘子']
        fruits.push('西瓜') ?// 向數(shù)組添加一個(gè)新元素
        console.log(fruits); ?// ['蘋(píng)果','香蕉','橘子','西瓜']

        ????返回值為改變后新數(shù)組的長(zhǎng)度

        let fruits = ['蘋(píng)果','香蕉','橘子']
        let x = fruits.push('西瓜') ?// x的值為4

        ??? unshift()方法:

        ????在數(shù)組開(kāi)頭處添加一個(gè)新元素(其余元素索引都向后移一位),參數(shù)為被添加元素

        let fruits = ['蘋(píng)果','香蕉','橘子']
        fruits.unshift('西瓜') ?// 向數(shù)組開(kāi)頭添加一個(gè)新元素
        console.log(fruits); ?// ['西瓜','蘋(píng)果','香蕉','橘子']

        ????返回值為改變后新數(shù)組的長(zhǎng)度

        let fruits = ['蘋(píng)果','香蕉','橘子']
        let x = fruits.unshift('西瓜') ?// x的值為4


        02?-?刪除數(shù)組元素方法


        ??? pop()方法:

        ????刪除數(shù)組中最后一個(gè)元素(其余元素索引未改變)

        let fruits = ['蘋(píng)果','香蕉','橘子']
        fruits.pop() ?// 刪除數(shù)組的最末尾元素
        console.log(fruits); ?// ['蘋(píng)果','香蕉']

        ????返回值為被刪除元素

        let fruits = ['蘋(píng)果','香蕉','橘子']
        let x = fruits.pop() ?// x的值為'橘子'

        ????shift()方法:

        ????刪除數(shù)組首個(gè)元素(其余元素索引都向前移一位)

        let fruits = ['蘋(píng)果','香蕉','橘子']
        fruits.shift() ?// 刪除數(shù)組的首位元素
        console.log(fruits); ?// ['香蕉','橘子']

        ????返回值為被刪除元素

        let fruits = ['蘋(píng)果','香蕉','橘子']
        let x = fruits.shift() ?//x的值為'蘋(píng)果'


        03?-?特殊方法splice()


        ????1、用于向數(shù)組添加新項(xiàng)

        ????第一個(gè)參數(shù)定義添加新元素的位置(索引號(hào));第二個(gè)參數(shù)定義刪除元素?cái)?shù)目;第三個(gè)及之后的參數(shù)定義新添加元素。

        let fruits = ['蘋(píng)果','香蕉','橘子']
        fruits.splice(1,0,'西瓜','芒果') ?// 在索引號(hào)為1的位置添加'西瓜'和'芒果'
        console.log(fruits); ?// ["蘋(píng)果", "西瓜", "芒果", "香蕉", "橘子"]

        ????返回值為被刪除元素組成的數(shù)組(如果有)

        let fruits = ['蘋(píng)果','香蕉','橘子']
        x = fruits.splice(1,1,'西瓜','芒果') // 在索引號(hào)為1的位置刪除一個(gè)元素并在該位置添加'西瓜'和'芒果'
        console.log(x); ?// ["香蕉"]
        console.log(fruits); ? // ["蘋(píng)果", "西瓜", "芒果", "橘子"]

        ????2、用于刪除數(shù)組元素

        ????只定義第一個(gè)和第二個(gè)參數(shù)(刪除元素個(gè)數(shù),不為0)。

        let fruits = ['蘋(píng)果','香蕉','橘子']
        fruits.splice(1,1) ?//在索引號(hào)為1的位置刪除1個(gè)元素
        console.log(fruits); ?//["蘋(píng)果", "橘子"]


        04?-?數(shù)組排序方法


        ??? sort()方法:

        ????默認(rèn)讓數(shù)組按照字母排序,返回值為排序后的新數(shù)組

        let fruits = ["Banana", "Orange", "Apple", "Mango"]
        x = fruits.sort() ?// 讓數(shù)組按照字母排序
        console.log(x); ? // ["Apple", "Banana", "Mango", "Orange"]
        console.log(fruits); ?// ["Apple", "Banana", "Mango", "Orange"]

        ????給數(shù)值數(shù)組排序

        let nums = [98, 57, 87, 36, 7]
        x = nums.sort(function(a, b){return a - b}) ?//從小到大
        console.log(x); ?// [7, 36, 57, 87, 98]
        y = nums.sort(function(a, b){return b - a}) ?//從大到小
        console.log(y); ?// [98, 87, 57, 36, 7]

        ??? reverse()方法:

        ????將原數(shù)組順序翻轉(zhuǎn),返回值為翻轉(zhuǎn)后的新數(shù)組

        let fruits = ["Banana", "Orange", "Apple", "Mango"]
        x = fruits.reverse() ?// 讓數(shù)組順序翻轉(zhuǎn)
        console.log(x); ? //?["Mango","Apple","Orange","Banana"]


        4ef9f2db17eef3936e991c310c7b7dbe.webpf6ac694f54910da9571bab7ea46c8b97.webp

        不改變?cè)瓟?shù)組的方法



        01 -?數(shù)組合并和裁剪


        ??? concat()方法:

        ????合并兩個(gè)數(shù)組或是一個(gè)數(shù)組和多個(gè)元素,類(lèi)似于向數(shù)組添加元素參數(shù)可以為一個(gè)數(shù)組或是元素,返回值為合并后的新數(shù)組

        let fruits = ["Banana", "Orange", "Mango"]
        let fruits2 = ['葡萄','香蕉','西瓜']
        fruitsArr = fruits.concat(fruits2) ?// 合并fruits和fruits2
        console.log(fruitsArr); ?// ["Banana", "Orange", "Mango", "葡萄", "香蕉", "西瓜"]

        ??? slice()方法:

        ????用數(shù)組的某個(gè)片段切出新數(shù)組,參數(shù):第一個(gè)為開(kāi)始索引,第二個(gè)為結(jié)束參數(shù)(不包括)

        let fruits = ["Banana", "Orange", "Mango", "Apple", "Pear", "Lemon"]
        fruitsCut = fruits.slice(1,3) ?// 剪切索引從1到3之前的元素作為新數(shù)組
        console.log(fruitsCut); ? // ["Orange", "Mango"]

        ????不定義第二個(gè)參數(shù)時(shí),裁剪從開(kāi)始參數(shù)之后所有元素作為新數(shù)組

        let fruits = ["Banana", "Orange", "Mango", "Apple", "Pear", "Lemon"]
        fruitsCut = fruits.slice(3) ?// 剪切索引從3開(kāi)始的所有元素作為新數(shù)組
        console.log(fruitsCut); ? // ["Apple", "Pear", "Lemon"]


        02?- 數(shù)組迭代方法


        ????對(duì)每個(gè)數(shù)組項(xiàng)進(jìn)行操作


        ??? forEach():

        ????遍歷數(shù)組的每個(gè)元素參數(shù):第一個(gè)為每個(gè)元素,第二個(gè)為該元素索引號(hào),第三個(gè)為數(shù)組本身常用的為前兩個(gè)參數(shù)接受回調(diào)函數(shù)對(duì)數(shù)組進(jìn)行操作

        let fruits = ["Banana", "Orange", "Orange"]
        fruits.forEach((item,index) => {
        ? ? ?console.log(item); ?// 分別輸出Banana,Orange,Orange
        ? ? ?console.log(index); ?// 分別輸出0,1,2
        });

        ??? indexOf():

        ????搜索元素值在數(shù)組中第一次出現(xiàn)的位置,返回索引值,沒(méi)有找到返回-1參數(shù)為被查找元素

        let fruits = ["Banana", "Orange", "Mango"]
        let x = fruits.indexOf('Mango') // 查找'Mango'
        console.log(x); ?// x值為2
        let y = fruits.indexOf('Apple') ?// 查找'Apple'
        console.log(y); ?// y值為-1

        ??? filter():

        ????過(guò)濾出符合條件的元素組成一個(gè)新數(shù)組參數(shù):第一個(gè)為每個(gè)元素,第二個(gè)為該元素索引號(hào),第三個(gè)為數(shù)組本身回調(diào)函數(shù)中return限制條件

        let nums = [98, 57, 87, 36, 7]
        let numsFil = nums.filter((item,index) => {
        ? ? ? return item > 50 ?// 過(guò)濾出大于50的元素成為新數(shù)組
        })
        console.log(numsFil); ?// [98, 57, 87]

        ??? reduce():

        ????可以用統(tǒng)計(jì)符合條件元素總數(shù)參數(shù):第一個(gè)為總數(shù)(初始值/先前返回值),第二個(gè)參數(shù)為每個(gè)元素,第三個(gè)參數(shù)為元素索引號(hào),第四個(gè)參數(shù)為數(shù)組本身常用的為前兩個(gè)參數(shù)

        let nums = [98, 57, 87, 36, 7]
        let total = nums.reduce((pre,val) => {
        ? ? ? if(val<50){ ?// 條件為值小于50
        ? ? ? ? ? ?pre++ ? // 符合條件時(shí)pre加1
        ? ? ? }
        ? ? ? return pre ?// 不符合時(shí)返回pre
        },0) ? ? ? ? ? ? ? // 接收初始值,不寫(xiě)時(shí)默認(rèn)為0
        console.log(total); ? // total值為2
        瀏覽 75
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
          
          

            1. 日韩少妇激情 | 无套白嫩进入乌克兰美女 | 精品久久天天躁免费观看一 | www.俺去也.com | 欧美午夜精品成人片在线播放 |