<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          JavaScript數組初始化的那些事兒

          共 2718字,需瀏覽 6分鐘

           ·

          2022-01-16 13:20

          點擊上方 Java學習之道,選擇 設為星標

          每天18:30點,干貨準時奉上!


          Part1不用for循環(huán)實現

          1fill()

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

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

          語法

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

          • value
          • 用來填充數組元素的值。
          • start 可選
          • 起始索引,默認值為0。
          • end 可選
          • 終止索引,默認值為 this.length。

          實例

          ???[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的參數為引用類型,會導致都執(zhí)行都一個引用類型
          ???//?如?arr[0]?===?arr[1]?為true
          ???arr[0].hi?=?"hi";?//?[{?hi:?"hi"?},?{?hi:?"hi"?},?{?hi:?"hi"?}]

          2Array.from()

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

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

          語法

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

          • arrayLike
          • 想要轉換成數組的偽數組對象或可迭代對象。
          • mapFn 可選
          • 如果指定了該參數,新數組中的每個元素會執(zhí)行該回調函數。
          • thisArg 可選
          • 可選參數,執(zhí)行回調函數 mapFnthis 對象。

          Array.from() 可以通過以下方式來創(chuàng)建數組對象:

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

          實例

          String 生成數組

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

          Set 生成數組

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

          Map 生成數組

          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 中使用箭頭函數

          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()方法返回一個包含數組中每個索引鍵的Array Iterator對象。

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

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

          語法

          arr.keys()

          實例

          索引迭代器會包含那些沒有對應元素的索引

          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() 返回一個字符串,表示指定的數組及其元素。

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

          語法

          arr.toString()

          -- END?--

          -??| 更多精彩文章 -



          加我微信,交個朋友
          長按/掃碼添加↑↑↑

          瀏覽 74
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产美女裸身网站 | 韩国三级精品 | 国产成人精品一区二区三区四区 | 国产精品激情在线 | 成人大香蕉最新视频 |