成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

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

kidsamong / 1342人閱讀

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

目標(biāo)
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)都是不會去遍歷處理的. 而只傳一個(gè)參數(shù)new出來數(shù)組,每個(gè)元素都是空的

死磕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 ]

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

ES6到底

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

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

頓時(shí)草泥馬奔騰,原來ES6添加了這個(gè)新函數(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://m.hztianpu.com/yun/79390.html

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

    aervon 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<