1. JavaScript數(shù)組初始化的那些事兒

        共 2718字,需瀏覽 6分鐘

         ·

        2022-01-16 13:20

        點(diǎn)擊上方 Java學(xué)習(xí)之道,選擇 設(shè)為星標(biāo)

        每天18:30點(diǎn),干貨準(zhǔn)時(shí)奉上!


        Part1不用for循環(huán)實(shí)現(xiàn)

        1fill()

        fill() 方法用一個(gè)固定值填充一個(gè)數(shù)組中從起始索引到終止索引內(nèi)的全部元素。不包括終止索引。

        const?array?=?Array(10).fill();
        ????
        //?[undefined,?undefined,?undefined,?undefined,?undefined]

        語(yǔ)法

        arr.fill(value[, start[, end]])

        • value
        • 用來(lái)填充數(shù)組元素的值。
        • start 可選
        • 起始索引,默認(rèn)值為0。
        • end 可選
        • 終止索引,默認(rèn)值為 this.length。

        實(shí)例

        ???[1,?2,?3].fill(4);???????????????//?[4,?4,?4]
        ???[1,?2,?3].fill(4,?1);????????????//?[1,?4,?4]
        ???[1,?2,?3].fill(4,?1,?2);?????????//?[1,?4,?3]
        ???[1,?2,?3].fill(4,?1,?1);?????????//?[1,?2,?3]
        ???[1,?2,?3].fill(4,?3,?3);?????????//?[1,?2,?3]
        ???[1,?2,?3].fill(4,?-3,?-2);???????//?[4,?2,?3]
        ???[1,?2,?3].fill(4,?NaN,?NaN);?????//?[1,?2,?3]
        ???[1,?2,?3].fill(4,?3,?5);?????????//?[1,?2,?3]
        ???Array(3).fill(4);????????????????//?[4,?4,?4]
        ???[].fill.call({?length:?3?},?4);??//?{0:?4,?1:?4,?2:?4,?length:?3}

        ???//?Objects?by?reference.
        ???var?arr?=?Array(3).fill({})?//?[{},?{},?{}];
        ???//?需要注意如果fill的參數(shù)為引用類型,會(huì)導(dǎo)致都執(zhí)行都一個(gè)引用類型
        ???//?如?arr[0]?===?arr[1]?為true
        ???arr[0].hi?=?"hi";?//?[{?hi:?"hi"?},?{?hi:?"hi"?},?{?hi:?"hi"?}]

        2Array.from()

        Array.from() 方法對(duì)一個(gè)類似數(shù)組或可迭代對(duì)象創(chuàng)建一個(gè)新的,淺拷貝的數(shù)組實(shí)例。

        ????Array.from({length:?5})
        ????//?[undefined,?undefined,?undefined,?undefined,?undefined]
        ????
        ????Array.from(Array(5))
        ????//?[undefined,?undefined,?undefined,?undefined,?undefined]

        語(yǔ)法

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

        • arrayLike
        • 想要轉(zhuǎn)換成數(shù)組的偽數(shù)組對(duì)象或可迭代對(duì)象。
        • mapFn 可選
        • 如果指定了該參數(shù),新數(shù)組中的每個(gè)元素會(huì)執(zhí)行該回調(diào)函數(shù)。
        • thisArg 可選
        • 可選參數(shù),執(zhí)行回調(diào)函數(shù) mapFn 時(shí) this 對(duì)象。

        Array.from() 可以通過(guò)以下方式來(lái)創(chuàng)建數(shù)組對(duì)象:

        • 偽數(shù)組對(duì)象(擁有一個(gè) length 屬性和若干索引屬性的任意對(duì)象)
        • 可迭代對(duì)象(可以獲取對(duì)象中的元素,如 Map和 Set 等

        實(shí)例

        String 生成數(shù)組

        Array.from('foo');
        //?[?"f",?"o",?"o"?]

        Set 生成數(shù)組

        const?set?=?new?Set(['foo',?'bar',?'baz',?'foo']);
        Array.from(set);
        //?[?"foo",?"bar",?"baz"?]

        Map 生成數(shù)組

        const?map?=?new?Map([[1,?2],?[2,?4],?[4,?8]]);
        Array.from(map);
        //?[[1,?2],?[2,?4],?[4,?8]]

        const?mapper?=?new?Map([['1',?'a'],?['2',?'b']]);
        Array.from(mapper.values());
        //?['a',?'b'];

        Array.from(mapper.keys());
        //?['1',?'2'];

        Array.from 中使用箭頭函數(shù)

        Array.from([1,?2,?3],?x?=>?x?+?x);
        //?[2,?4,?6]

        Array.from({length:?5},?(v,?i)?=>?i);
        //?[0,?1,?2,?3,?4]

        3Array.keys()

        keys()方法返回一個(gè)包含數(shù)組中每個(gè)索引鍵的Array Iterator對(duì)象。

        const?array?=?[...Array(5).keys()];
        ?//?[0,?1,?2,?3,?4]

        ?const?array?=?Array.from(Array(5).keys());
        ?//?[0,?1,?2,?3,?4]

        語(yǔ)法

        arr.keys()

        實(shí)例

        索引迭代器會(huì)包含那些沒有對(duì)應(yīng)元素的索引

        var?arr?=?["a",?,?"c"];
        var?sparseKeys?=?Object.keys(arr);
        var?denseKeys?=?[...arr.keys()];
        console.log(sparseKeys);?//?['0',?'2']
        console.log(denseKeys);??//?[0,?1,?2]

        4toString() + split()

        toString() 返回一個(gè)字符串,表示指定的數(shù)組及其元素。

        const?array?=?Array(5).toString().split(',');
        //?['',?'',?'',?'',?'']

        語(yǔ)法

        arr.toString()

        -- END?--

        -??| 更多精彩文章 -



        加我微信,交個(gè)朋友
        長(zhǎng)按/掃碼添加↑↑↑

        瀏覽 74
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

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

        手機(jī)掃一掃分享

        分享
        舉報(bào)
          
          

            1. 国产一区二区精品丝袜 | 91足交视频 | 亚洲人天堂 | 日本a免费| 91传媒在线观看 |