摘要:目標條件盡量的簡潔首先想到的是失敗原因原來數組中的空元素包括都是不會去遍歷處理的而只傳一個參數出來數組每個元素都是空的死磕觀察構造函數的接口可以用不定參數的方式來創建用試試可行使用的語法簡化下好像也可以去掉到了這一步好像是最簡潔的實現方式
目標
function createArrayWith(length,value){...} createArrayWith(2,3) => [3, 3] createArrayWith(2,{test:2}) => [{test:2}, {test:2}]
條件: 盡量的簡潔
首先想到的是mapfunction 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
原來數組中的"空"元素,map(包括foreEach)都是不會去遍歷處理的. 而只傳一個參數new出來數組,每個元素都是空的
死磕map觀察Array 構造函數的接口
new Array(element0, element1[, ...[, elementN]]) new Array(arrayLength)
可以用不定參數的方式來創建
用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 ]
到了這一步好像是最簡潔的實現方式了,但是看起來是在太怪異了.
ES6到底在MDN 過Array 方法的時候,發現了居然有這個一個函數
arr.fill(value[, start = 0[, end = this.length]])
頓時草泥馬奔騰,原來ES6添加了這個新函數.
在ES6的環境下的話,最簡潔的方式還是
function createArrayWith(length,value){ return new Array(length).fill(value) } createArrayWith(2,3) [ 3, 3 ]
折騰完畢
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/79390.html
摘要:由于公司沒有運維又需要監控服務器的一些數據信息想盡快的啟動一個數值監控系統技術評估了下打算的方式來建設是一個時間數列數據庫并且自帶一些簡單圖形展示功能雖然展示方面不是很完美但是在收集時間數據上非常的方便和簡單根據官網的例子只需要一個連接就能 由于公司沒有運維, 又需要監控服務器的一些數據信息, 想盡快的啟動一個數值監控系統. 技術評估了下打算 graphite + grafana 的...
摘要:到現在為止我們會從拉取自己需要的文件并執行起來還會基于已有的來制作自己特殊需要的但是如果我們完成一個功能需要多個組合起來使用該怎么辦呢雖然可以通過來制作一個這樣的但是如果所有的功能都做在一個中如果有一個模塊需呀改變的話就需要重新構建整個作為 到現在為止,我們會從 docker hub 拉取自己需要的 image 文件并執行起來. 還會基于已有的 image 來制作自己特殊需要的 ima...
摘要:在語言中我們很難完全避免垃圾開銷。它的垃圾收集模式在根本上是不符合像游戲這樣的實時軟件需求的。此外,在所有可能的情況下避免向量對象如中的和屬性。 在 Javascript 語言中我們很難完全避免垃圾開銷。它的垃圾收集模式在根本上是不符合像游戲這樣的實時軟件需求的。在這篇文章中我們主要介紹了一些關于 javascript 垃圾回收的方法。 編輯于 2012 年 3 月 27 日: 哇,這...
摘要:函數式編程的定義函數是一段可以通過其名稱被調用的代碼。純函數大多數函數式編程的好處來自于編寫純函數,純函數是對給定的輸入返回相同的輸出的函數,并且純函數不應依賴任何外部變量,也不應改變任何外部變量。 一個持續更新的github筆記,鏈接地址:Front-End-Basics,可以watch,也可以star。 此篇文章的地址:JavaScript函數式編程入門經典 正文開始 什么是函...
摘要:實現數組更多的高階函數吾輩的博客原文場景雖說人人平等,但有些人更加平等。若是有一篇適合萌新閱讀的自己實現數組更多操作的文章,情況或許會發生一些變化。類似于的初始值,但它是一個函數,避免初始值在所有分組中進行累加。 JavaScript 實現數組更多的高階函數 吾輩的博客原文: https://blog.rxliuli.com/p/fc... 場景 雖說人人平等,但有些人更加平等。 為...
閱讀 1309·2021-09-22 15:00
閱讀 3313·2019-08-30 14:00
閱讀 1227·2019-08-29 17:27
閱讀 1225·2019-08-29 16:35
閱讀 693·2019-08-29 16:14
閱讀 2046·2019-08-26 13:43
閱讀 2125·2019-08-26 11:35
閱讀 2312·2019-08-23 15:34