
解決JS練習的解決方案和解釋。
這不是備忘單!
我在FreecodeCamp和Edabit中求解JavaScript算法時進行了彙編。我認為這必須是試圖在Web開發範式中啟動和運行的人們的有用指南。
創建一個將在數組中顯示最小值的函數。
例子:
> console . log ( findSmallest ( [ 30 , 45 , 60 , 7 ] ) ) ;
> 1參考:
解決方案:
function findSmallest ( arr ) {
return Math . min ( ... arr ) ;
} 將按字母順序返回字符串的功能
例子:
> console . log ( AlphabeticalOrder ( 'hello' ) ) ;
> "ehllo"參考:
array.split
array.join
解決方案:
function AlphabeticalOrder ( str ) {
return str
. split ( "" )
. sort ( )
. join ( "" ) ;
} 在數學中,由n!表示的非陰性整數N的階乘是所有正整數小於或等於n的乘積。簡單地說,7的階乘被這樣解決:
7 _ 6 _ 5 _ 4 _ 3 _ 2 _ 1 = 5,040
例子:
> console . log ( factorializer ( 7 ) ) ;
> 5040參考:
遞迴
如果和否則語句
解決方案:
function factorializer ( int ) {
if ( int <= 1 ) {
return 1 ;
} else {
return int * factorializer ( int - 1 ) ;
}
} 一個可以讓您知道數字是偶數還是奇怪的函數
例子:
> console . log ( oddOrEven ( 7 ) ) ;
> "Odd"參考:
解決方案:
function oddOrEven ( int ) {
let ouput = int % 2 ;
if ( output == 0 ) {
return "Even" ;
} else {
return "Odd" ;
}
} 刪除數組中的所有奇數數字,然後返回一個僅包含數字的新數組
例子:
> console . log ( evenOnly ( [ 1 , 2 , 3 , 4 , 5 , 6 ] ) ) ;
> [ 2 , 4 , 6 ]參考:
Array.Filter
Modulo
解決方案:
function evenOnly ( arr ) {
let result = arr . filter ( arr => arr % 2 == 0 ) ;
return result ;
} 創建一個可以接受數組的函數,檢查每個元素的數據類型。該函數將刪除字符串元素,並將返回新數組
例子:
> console . log ( numbersOnly ( [ 'text' , 3 , 7 , 'github' , 13 , 'dev' ] ) ) ;
> [ 3 , 7 , 13 ]參考:
Array.Filter
類型
解決方案:
function numbersOnly ( arr ) {
return arr . filter ( arr => typeof arr == "number" ) ;
} 返回一個數字的總和回到其根。換句話說,該函數將這樣工作:
添加(5);
// 5 + 4 + 3 + 2 + 1 + 0 = 15
例子:
> console . log ( addUp ( 8 ) ) ;
> 36參考:
遞迴
1 + 2 + 3 + 4 +⋯
解決方案:
function addUp ( num ) {
if ( num <= 1 ) {
return num ;
} else {
return num + addUp ( num - 1 ) ;
}
} 創建一個可以接受數組並執行以下操作的函數:
獲取最低元素
獲得最高元素
獲取數組的長度
獲取所有元素的平均值;
將這些標準存儲在新數組中
例子:
> console . log ( minMaxLengthAverage ( [ 7 , 13 , 3 , 77 , 100 ] ) ) ;
> [ 3 , 100 , 5 , 40 ]參考:
Math.min
Math.max
Array.Reduce
array.length
解決方案:
function minMaxLengthAverage ( arr ) {
const min = Math . min ( ... arr ) ;
const max = Math . max ( ... arr ) ;
const len = arr . length ;
//Reducer for get Average function
const ave = arr => arr . reduce ( ( acc , curVal ) => acc + curVal , 0 ) / len ;
const average = ave ( arr ) ;
//Return output
return [ min , max , len , average ] ;
} Array.sort()按字母順序排列字符串。如果我們想將數字從最低到最高排序該怎麼辦?它會產生正確的輸出嗎?
示例:如果我們將Array.sort()應用於數字:這就是發生的情況:
> arr = [ 45 , 34 , 23 , 12 , 7 ]
> console . log ( arr . sort ( ) ) ;
> [ 12 , 23 , 34 , 45 , 7 ]輸出不是正確的嗎?
> console . log ( sortNumsAscending ( [ 7 , 13 , 3 , 77 , 100 ] ) ) ;
> [ 3 , 5 , 40 , 100 ]參考:
在JavaScript中排序
array.sort()
解決方案:
function sortNumsAscending ( arr ) {
let sorter = ( a , b ) => {
return a - b ;
} ;
if ( arr == [ ] ) {
return [ ] ;
} else if ( arr == null ) {
return [ ] ;
} else {
return arr . sort ( sorter ) ;
}
} 將給定的數字轉換為羅馬數字
例子:
> romanNumbers ( 1989 ) ;
> MCMLXXXIX參考:
羅馬數字
array.join()
array.indexof()
array.splice()
解決方案:
function romanNumbers ( num ) {
let values = [ 1000 , 900 , 500 , 400 , 100 , 90 , 50 , 40 , 10 , 9 , 5 , 4 , 1 ] ;
let romanNumerals = [
"M" ,
"CM" ,
"D" ,
"CD" ,
"C" ,
"XC" ,
"L" ,
"XL" ,
"X" ,
"IX" ,
"V" ,
"IV" ,
"I"
] ;
let roman = "" ;
for ( i = 0 ; i < values . length ; i ++ ) {
while ( values [ i ] <= num ) {
roman += romanNumerals [ i ] ;
num -= values [ i ] ;
}
}
return roman ;
}
console . log ( romanNumbers ( 1989 ) ) ; 返回所有數組元素的絕對總和
例子:
> getAbsSum ( [ - 1 , - 3 , - 5 , - 4 , - 10 , 0 ] ) ;
> 23參考:
array.prototype.Reduce
數學
解決方案:
function getAbsSum ( arr ) {
const reducer = ( acc , currVal ) => {
return acc + currVal ;
} ;
return Math . abs ( arr . reduce ( reducer ) ) ;
} 使用哈希標籤形成三角形
例子:
> #
> ##
> ###
> ####
> #####
> ######
> #######參考:
解決方案:
for ( x = "#" ; x . length <= 7 ; x += x ) {
console . log ( x ) ;
} 返回給出多少個單詞
例子:
> countWords ( 'hello from kbpsystem!' ) ;
> 3參考:
String.Prototype.split
array.length
解決方案:
function countWords ( str ) {
return str . split ( " " ) . length ;
} 將數組中的所有元素乘以其長度
例子:
> MultiplyByLength ( [ 4 , 1 , 1 ] ) ;
> [ 12 , 3 , 3 ]參考:
為了
array.length
array.prototype.push
array.prototype.map
解決方案:
function MultiplyByLength ( arr ) {
let len = arr . length ;
for ( i = 0 ; i < len ; i ++ ) {
arr [ i ] = arr [ i ] * len ;
}
return arr ;
} 創建一個函數,該函數將檢查str1是否以str2中的字符結束
規則:
以兩個字符串為論點
確定第二個字符串是否匹配第一個字符串的結尾
返回布爾值
例子:
> console . log ( checkEnding ( "samurai" , "zi" ) ) ;
> false參考:
string.prototype.endswith()方法確定字符串是否以指定字符串的字符結束,在適當的情況下返回true或false。
array.prototype.join方法將數組(或類似數組的對象)的所有元素連接到一個字符串中,然後返回此字符串。
解決方案:
function checkEnding ( str1 , str2 ) {
return str1 . endsWith ( str2 ) ;
} 創建一個可以重複每個字符串字符兩次的函數
例子:
> console . log ( doubleChar ( 'exercise' ) ) ;
> eexxeerrcciissee參考:
array.prototype.split split()方法通過將字符串分離為子字符串,使用指定的分隔符字符串將字符串對象分開為字符串,以確定將每個拆分進行何處。
array.prototype.map the map()方法創建一個新數組,其結果是調用調用數組中每個元素的函數。
array.prototype.join此方法將數組(或類似數組的對象)的所有元素連接到一個字符串中,然後返回此字符串。
解決方案:
function doubleChar ( str ) {
let x = str . split ( "" ) ;
return x . map ( x => x . repeat ( 2 ) ) . join ( "" ) ;
}說明:在上面的解決方案上,首先,我們在字符串參數上應用拆分方法,然後將其存儲在稱為x的變量中。接下來,我們使用映射函數來在字符串的每個元素上執行重複過程,這在這種情況下被視為數組,因為我們只是在字符串上應用了一種拆分方法。複製過程完成後,我們將調用join()方法。應用此方法會將數組重新轉換為字符串,但是這次具有新的重複值
從給定數組返回元素的索引位置。第一個參數是您要搜索的數組,第二個參數是要尋找的元素(要么字符串/號碼)。
例子:
> console . log ( findIndex ( [ 'github' , 'gitlab' , 'bitbucket' , 'apollo' ] , 'gitlab' ) ) ;
> 1參考:
解決方案:
function findIndex ( arr , element ) {
return arr . indexOf ( element ) ;
}說明: findIndex函數需要兩個參數。首先是要監視的數組,然後最後一個是需要找到的數組上的元素。 JavaScript具有一個名為indexOf()的內置方法,我們使用它來定位數組中某個元素的索引位置。此方法通過數組循環定位元素的索引值
此練習由FreecodeCamp提供
這項練習是對陳述時執行的實施。我們的目標是繼續運行函數/語句,設置paramater,並且一旦參數評估結果為false ,函數/語句執行將停止
例子:
var result = "" ;
var i = 0 ;
do {
i = i + 1 ;
result = result + i ;
} while ( i < 5 ) ;
console . log ( result ) ;
// expected result: "12345"參考:
do ...雖然語句創建一個循環,該循環執行指定的語句,直到測試條件評估為false。執行語句後,對條件進行評估,導致指定的語句至少執行一次。
解決方案:
// Setup
> var myArray = [ ] ;
> var i = 10 ;
> // Only change code below this line.
> do {
myArray . push ( i ) ;
i ++ ;
console . log ( i )
} while ( i < 11 ) 我們在Codetriage上!
請隨時提交問題或提取請求