摘要:遞歸一個(gè)簡單的階乘遞歸在遞歸之前,該函數(shù)會被掛起,如下圖數(shù)組創(chuàng)建數(shù)組通過操作符通過構(gòu)造函數(shù)判斷是否數(shù)組數(shù)組中的一些常用函數(shù)查找元素,大小寫敏感,返回索引返回將數(shù)組轉(zhuǎn)化為字符串將數(shù)組轉(zhuǎn)化為字符串合并數(shù)組和并創(chuàng)建新數(shù)組起始索引長度添加新數(shù)組
遞歸
function factorial() { // 一個(gè)簡單的階乘遞歸 if (number == 1) { return number; } else { return number factorial(number - 1); } } console.log(factorial(5));
在遞歸之前,該函數(shù)會被掛起,如下圖:
5 * factorial(4) 5 * 4 * factorial(3) 5 * 4 * 3 * factorial(2) 5 * 4 * 3 * 2 * factorial(1) 5 * 4 * 3 * 2 * 1 5 * 4 * 3 * 2 5 * 4 * 6 5 * 24 120JavaScript 數(shù)組 創(chuàng)建數(shù)組
var numbers = []; // 通過 [] 操作符 var numbers = new Array(); // 通過構(gòu)造函數(shù) Array.isArray(numbers) // 判斷是否數(shù)組數(shù)組中的一些常用函數(shù)
.indexOf() // 查找元素,大小寫敏感,返回索引/返回-1 .join() // 將數(shù)組轉(zhuǎn)化為字符串 .toString() // 將數(shù)組轉(zhuǎn)化為字符串 A.concat(B) // 合并數(shù)組A和B并創(chuàng)建新數(shù)組 .splice(起始索引,長度,添加新數(shù)組,.....,...) // 從數(shù)組里截取一個(gè)新數(shù)組 .push() // 將一個(gè)元素添加到末尾 .unshift() // 將一個(gè)元素添加到開頭 .pop() // 刪除數(shù)組末尾的元素 .shift() // 刪除數(shù)組的第一個(gè)元素 .splice(3, 0, 1, 2, 3) // 從索引為3的位置開始插入1,2,3 .reverse() // 翻轉(zhuǎn)數(shù)組中的元素 .sort() // 按字典順序?qū)υ剡M(jìn)行排序 // 從小到大排序 fucntion compare(num1, num2) { return num1 - num2; } var nums = [...]; nums.sort(compare);數(shù)組的迭代
.forEach(square); // 對數(shù)組中的每個(gè)元素使用square函數(shù) .every(isEven) // 若每個(gè)元素都滿足isEven則返回true .some(isEven) // 只要有一個(gè)元素滿足isEven則返回true .reduce(add) // 不斷對累加值和后續(xù)元素調(diào)用add函數(shù),最終返回累加值 / 鏈接元素 .reduceRight() // 從右往左
.map(curve) // 返回一個(gè)經(jīng)過curve函數(shù)處理后的數(shù)組 .filter() // 類似every,返回元素結(jié)果為true的新數(shù)組 function isEven(num) { return num % 2 == 0; } function isOdd(num) { return num % 2 != 0; } var nums = []; for(i = 0; i < 10; ++i) { nums[i] = i+1; } var evens = nums.filter(isEven); // 2 4 6 8 10 var odds = nums.filter(isOdd); // 1 3 5 7 9多維數(shù)組
JavaScript: The Good Parts (O"Reilly) P64
Array.matrix = function(numrows, numcols, initial) { // 創(chuàng)建多位數(shù)組 var arr = []; for (var i = 0; i < numrows; ++i) { var columns = []; for (var j = 0; j < numcols; ++j) { columns[j] = initial; } arr[i] = columns; } return arr; } var nums = Array.matrix(5,5,0); var strings = Array.matrix(5,5,"");
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/90070.html
摘要:專題系列共計(jì)篇,主要研究日常開發(fā)中一些功能點(diǎn)的實(shí)現(xiàn),比如防抖節(jié)流去重類型判斷拷貝最值扁平柯里遞歸亂序排序等,特點(diǎn)是研究專題之函數(shù)組合專題系列第十六篇,講解函數(shù)組合,并且使用柯里化和函數(shù)組合實(shí)現(xiàn)模式需求我們需要寫一個(gè)函數(shù),輸入,返回。 JavaScript 專題之從零實(shí)現(xiàn) jQuery 的 extend JavaScritp 專題系列第七篇,講解如何從零實(shí)現(xiàn)一個(gè) jQuery 的 ext...
摘要:數(shù)組創(chuàng)建數(shù)組數(shù)組字面量使用構(gòu)造函數(shù)數(shù)組本質(zhì)上是所以要判斷是不是數(shù)組,需要通過判斷。數(shù)組長度使用屬性獲取元素的個(gè)數(shù)。例如函數(shù)的對象就是這樣 原文: http://pij.robinqu.me/JavaScript_Core/JavaScript_Basics/Array.html 源代碼: https://github.com/RobinQu/Programing-In-...
摘要:幾乎所有的編程語言都有類似的數(shù)據(jù)結(jié)構(gòu)。然而的數(shù)組卻略有不同。沒有定義中說的那樣的數(shù)據(jù)結(jié)構(gòu),作為替代。元素通過指定的分隔符進(jìn)行分隔。返回該對象的源代碼。把數(shù)組轉(zhuǎn)換為本地?cái)?shù)組,并返回結(jié)果。 寫在前面的話: 經(jīng)常看到技術(shù)博客上寫的內(nèi)容很詳細(xì),對于一個(gè)問題,大家的博客內(nèi)容似乎都是一樣的。不難發(fā)現(xiàn)這些技術(shù)博客已經(jīng)成為各路教程的匯總地,而教程一般都是參考國外博客翻譯或者直接在經(jīng)典的書籍上大片抄錄。...
摘要:中并沒有明確的數(shù)組數(shù)據(jù)類型。創(chuàng)建一維數(shù)組具有以下幾種方式二維數(shù)組數(shù)組是可以嵌套,這就意味著一個(gè)數(shù)組可以作為一個(gè)數(shù)組被包含在另外一個(gè)數(shù)組里面。利用這個(gè)特點(diǎn),創(chuàng)建二維數(shù)組,即數(shù)組的數(shù)組。刪除數(shù)組的最后一個(gè)元素并返回刪除的元素。 Array 概述 一維數(shù)組 數(shù)組是一個(gè)有序的數(shù)據(jù)集合,可以通過數(shù)組名稱和索引進(jìn)行訪問。JavaScript中并沒有明確的數(shù)組數(shù)據(jù)類型。創(chuàng)建一維數(shù)組具有以下幾種方式:...
摘要:中并沒有明確的數(shù)組數(shù)據(jù)類型。返回?cái)?shù)組對象的原始值。專門用于篩選出數(shù)組中符合函數(shù)判斷條件的元素組成的心數(shù)組。專門用于對原數(shù)組中每個(gè)元素執(zhí)行相同的函數(shù)對象規(guī)定的操作。 概述 一維數(shù)組 數(shù)組是一個(gè)有序的數(shù)據(jù)集合,可以通過數(shù)組名稱和索引進(jìn)行訪問。JavaScript中并沒有明確的數(shù)組數(shù)據(jù)類型。 二維數(shù)組 數(shù)組是可以嵌套的,這就意味著一個(gè)數(shù)組可以作為一個(gè)袁旭被包含在另一個(gè)數(shù)組里面。利用JavaS...
摘要:屬性是一個(gè)值或一組值以數(shù)組或?qū)ο蟮男问剑菍ο蟮某蓡T。可以使用內(nèi)置構(gòu)造函數(shù)和創(chuàng)建包裝對象。因此下面的代碼將會使人很迷惑結(jié)果結(jié)果,此數(shù)組長度為應(yīng)該盡量避免使用數(shù)組構(gòu)造函數(shù)創(chuàng)建新數(shù)組。給數(shù)組對象添加返回?cái)?shù)組中最大元素值的方法。 對象部分 Object類型 Object 是一個(gè)無序的集合,可以存放任意類型對象,所有其他對象都繼承自這個(gè)對象。創(chuàng)建Object類型有兩種,一種是使用new運(yùn)算符,...
閱讀 4511·2021-09-22 14:57
閱讀 555·2019-08-30 15:56
閱讀 2658·2019-08-30 15:53
閱讀 2234·2019-08-29 14:15
閱讀 1684·2019-08-28 17:54
閱讀 553·2019-08-26 13:37
閱讀 3472·2019-08-26 10:57
閱讀 1041·2019-08-26 10:32