
การแก้ปัญหาและคำอธิบายเกี่ยวกับการออกกำลังกาย JS
นี่ไม่ใช่แผ่นโกง!
ฉันทำการรวบรวมนี้ในขณะที่แก้อัลกอริทึม JavaScript ใน FreeCodecamp และ Edabit ฉันคิดว่านี่จะต้องเป็นคู่มือที่เป็นประโยชน์สำหรับผู้ที่พยายามจะขึ้นไปทำงานในกระบวนทัศน์การพัฒนาเว็บ
สร้างฟังก์ชั่นที่จะแสดงค่าที่เล็กที่สุดในอาร์เรย์
ตัวอย่าง:
> 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
โมดูโล
สารละลาย:
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" ) ;
} ส่งคืนผลรวมของตัวเลขที่กลับไปที่รูท กล่าวอีกนัยหนึ่งฟังก์ชั่นจะทำงานเช่นนี้:
addup (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
Math.Abs
สารละลาย:
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 () กำหนดว่าสตริงจะจบลงด้วยอักขระของสตริงที่ระบุหรือไม่กลับจริงหรือเท็จตามความเหมาะสม
array.prototype.join วิธีการเข้าร่วมองค์ประกอบทั้งหมดของอาร์เรย์ (หรือวัตถุคล้ายอาร์เรย์) ลงในสตริงและส่งคืนสตริงนี้
สารละลาย:
function checkEnding ( str1 , str2 ) {
return str1 . endsWith ( str2 ) ;
} สร้างฟังก์ชั่นที่จะทำซ้ำอักขระสตริงแต่ละตัวสองครั้ง
ตัวอย่าง:
> console . log ( doubleChar ( 'exercise' ) ) ;
> eexxeerrcciisseeอ้างอิง:
array.prototype.split เมธอด split() แยกวัตถุสตริงออกเป็นอาร์เรย์ของสตริงโดยแยกสตริงออกเป็นส่วนย่อยโดยใช้สตริงตัวคั่นที่ระบุเพื่อกำหนดตำแหน่งที่จะแยกแต่ละ
array.prototype.map วิธีการ 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
แบบฝึกหัดนี้เป็นการดำเนินการตามคำสั่ง เป้าหมายของเราที่นี่คือการเรียกใช้ฟังก์ชั่น/คำสั่งตั้งค่าพารามิเตอร์และทันทีที่ผลลัพธ์ของพารามิเตอร์ประเมินเป็น false การดำเนินการฟังก์ชัน/คำสั่งจะหยุดลง
ตัวอย่าง:
var result = "" ;
var i = 0 ;
do {
i = i + 1 ;
result = result + i ;
} while ( i < 5 ) ;
console . log ( result ) ;
// expected result: "12345"อ้างอิง:
DO ... ในขณะที่คำสั่งสร้างลูปที่ดำเนินการคำสั่งที่ระบุจนกว่าเงื่อนไขการทดสอบจะประเมินเป็นเท็จ เงื่อนไขจะถูกประเมินหลังจากดำเนินการคำสั่งส่งผลให้คำสั่งที่ระบุดำเนินการอย่างน้อยหนึ่งครั้ง
สารละลาย:
// Setup
> var myArray = [ ] ;
> var i = 10 ;
> // Only change code below this line.
> do {
myArray . push ( i ) ;
i ++ ;
console . log ( i )
} while ( i < 11 ) เราอยู่ใน Codetriage!
โปรดส่งปัญหาหรือดึงคำขอ