亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

[afterCode] JavaScript 中如何快捷的創(chuàng)建一個含有相同初始值的數(shù)組

kidsamong / 1340人閱讀

摘要:目標條件盡量的簡潔首先想到的是失敗原因原來數(shù)組中的空元素包括都是不會去遍歷處理的而只傳一個參數(shù)出來數(shù)組每個元素都是空的死磕觀察構(gòu)造函數(shù)的接口可以用不定參數(shù)的方式來創(chuàng)建用試試可行使用的語法簡化下好像也可以去掉到了這一步好像是最簡潔的實現(xiàn)方式

目標
function createArrayWith(length,value){...}

createArrayWith(2,3) => [3, 3]
createArrayWith(2,{test:2}) => [{test:2}, {test:2}]

條件: 盡量的簡潔

首先想到的是map
function createArrayWith(length,value){
   return new Array(length).map(function(){
           return value
   })
}
失敗
createArrayWith(2,3) 
[ , ]
原因

map calls a provided callback function once for each element in an array, in order, and constructs a new array from the results. callback is invoked only for indexes of the array which have assigned values, including undefined. It is not called for missing elements of the array (that is, indexes that have never been set, which have been deleted or which have never been assigned a value).

from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map

原來數(shù)組中的"空"元素,map(包括foreEach)都是不會去遍歷處理的. 而只傳一個參數(shù)new出來數(shù)組,每個元素都是空的

死磕map

觀察Array 構(gòu)造函數(shù)的接口

new Array(element0, element1[, ...[, elementN]])
new Array(arrayLength)

可以用不定參數(shù)的方式來創(chuàng)建

用apply試試
function createArrayWith(length,value){
   return Array.apply(null,new Array(length)).map(function(){
           return value
   })
}

// 可行
createArrayWith(2,3)
[ 3, 3 ]
使用ES6的語法簡化下
function createArrayWith(length,value){
   return Array.apply(null,new Array(length)).map(()=>value)
}

createArrayWith(2,3)
[ 3, 3 ]
好像new也可以去掉
function createArrayWith(length,value){
   return Array.apply(null,Array(length)).map(()=>value)
}

createArrayWith(2,3)
[ 3, 3 ]

到了這一步好像是最簡潔的實現(xiàn)方式了,但是看起來是在太怪異了.

ES6到底

在MDN 過Array 方法的時候,發(fā)現(xiàn)了居然有這個一個函數(shù)

arr.fill(value[, start = 0[, end = this.length]])

頓時草泥馬奔騰,原來ES6添加了這個新函數(shù).

在ES6的環(huán)境下的話,最簡潔的方式還是

function createArrayWith(length,value){
   return new Array(length).fill(value)
}

createArrayWith(2,3)
[ 3, 3 ]

折騰完畢

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/79390.html

相關(guān)文章

  • [afterCode] docker 速成班 7: 實戰(zhàn) 構(gòu)建基于graphtie/grafana監(jiān)

    摘要:由于公司沒有運維又需要監(jiān)控服務器的一些數(shù)據(jù)信息想盡快的啟動一個數(shù)值監(jiān)控系統(tǒng)技術(shù)評估了下打算的方式來建設是一個時間數(shù)列數(shù)據(jù)庫并且自帶一些簡單圖形展示功能雖然展示方面不是很完美但是在收集時間數(shù)據(jù)上非常的方便和簡單根據(jù)官網(wǎng)的例子只需要一個連接就能 由于公司沒有運維, 又需要監(jiān)控服務器的一些數(shù)據(jù)信息, 想盡快的啟動一個數(shù)值監(jiān)控系統(tǒng). 技術(shù)評估了下打算 graphite + grafana 的...

    jhhfft 評論0 收藏0
  • [afterCode] docker 速成班 5: 組合 container

    摘要:到現(xiàn)在為止我們會從拉取自己需要的文件并執(zhí)行起來還會基于已有的來制作自己特殊需要的但是如果我們完成一個功能需要多個組合起來使用該怎么辦呢雖然可以通過來制作一個這樣的但是如果所有的功能都做在一個中如果有一個模塊需呀改變的話就需要重新構(gòu)建整個作為 到現(xiàn)在為止,我們會從 docker hub 拉取自己需要的 image 文件并執(zhí)行起來. 還會基于已有的 image 來制作自己特殊需要的 ima...

    neuSnail 評論0 收藏0
  • 如何編寫避免垃圾開銷實時Javascript代碼

    摘要:在語言中我們很難完全避免垃圾開銷。它的垃圾收集模式在根本上是不符合像游戲這樣的實時軟件需求的。此外,在所有可能的情況下避免向量對象如中的和屬性。 在 Javascript 語言中我們很難完全避免垃圾開銷。它的垃圾收集模式在根本上是不符合像游戲這樣的實時軟件需求的。在這篇文章中我們主要介紹了一些關(guān)于 javascript 垃圾回收的方法。 編輯于 2012 年 3 月 27 日: 哇,這...

    Shisui 評論0 收藏0
  • JavaScript函數(shù)式編程入門經(jīng)典

    摘要:函數(shù)式編程的定義函數(shù)是一段可以通過其名稱被調(diào)用的代碼。純函數(shù)大多數(shù)函數(shù)式編程的好處來自于編寫純函數(shù),純函數(shù)是對給定的輸入返回相同的輸出的函數(shù),并且純函數(shù)不應依賴任何外部變量,也不應改變?nèi)魏瓮獠孔兞俊? 一個持續(xù)更新的github筆記,鏈接地址:Front-End-Basics,可以watch,也可以star。 此篇文章的地址:JavaScript函數(shù)式編程入門經(jīng)典 正文開始 什么是函...

    silvertheo 評論0 收藏0
  • JavaScript 實現(xiàn)數(shù)組更多高階函數(shù)

    摘要:實現(xiàn)數(shù)組更多的高階函數(shù)吾輩的博客原文場景雖說人人平等,但有些人更加平等。若是有一篇適合萌新閱讀的自己實現(xiàn)數(shù)組更多操作的文章,情況或許會發(fā)生一些變化。類似于的初始值,但它是一個函數(shù),避免初始值在所有分組中進行累加。 JavaScript 實現(xiàn)數(shù)組更多的高階函數(shù) 吾輩的博客原文: https://blog.rxliuli.com/p/fc... 場景 雖說人人平等,但有些人更加平等。 為...

    aervon 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<