
解决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上!
请随时提交问题或提取请求