HomeLập trìnhJavaScriptCách tìm nghịch...

Cách tìm nghịch đảo cộng của mỗi số trong JavaScript [CodeWars Challenge Solved]


Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách giải quyết vấn đề đảo ngược giá trị CodeWars trong JavaScript.

Thay vì chỉ đi sâu vào mã, trước tiên chúng ta sẽ đọc qua vấn đề và đảm bảo rằng chúng ta hiểu nó. Tiếp theo, chúng ta sẽ viết mã giả mà chúng ta sẽ sử dụng làm hướng dẫn để giải quyết vấn đề. Cuối cùng, chúng ta sẽ tự viết mã.

Bắt đầu nào!

Đầu tiên, đọc qua vấn đề

Đây là mô tả vấn đề:

Cho trước một tập hợp số, trả về nghịch đảo cộng của mỗi số. Mỗi tích cực trở thành tiêu cực, và tiêu cực trở thành tích cực.

Bạn có thể cho rằng tất cả các giá trị là số nguyên. Không thay đổi mảng/danh sách đầu vào.

Để giải quyết vấn đề này, trước tiên chúng ta cần đảm bảo rằng mình hiểu nó. Chúng ta hãy xem qua một số câu hỏi mà chúng ta có thể tự hỏi mình để giúp chúng ta hiểu vấn đề này.

Đầu vào là gì?

Các đầu vào có thể cho vấn đề này là gì? Chức năng này sẽ nhận được gì?

Mô tả vấn đề cho biết, ‘đã cho một tập hợp số.‘ Điều này cho chúng tôi biết rằng đầu vào của chúng tôi là một tập hợp các số.

Vấn đề cũng cho chúng ta giả sử rằng tất cả các số này sẽ là số nguyên.

Cuối cùng, từ các ví dụ mà bài toán đưa ra, chúng ta có thể thấy rằng tập hợp các số sẽ nằm trong một mảng:

Đọc thêm  Cách tải lại một trang trong JavaScript
hình ảnh-58

Thu thập thông tin này, chúng tôi có thể nói rằng đầu vào của chúng tôi sẽ là một mảng các số nguyên.

Kết quả đầu ra là gì?

Tiếp theo chúng ta có thể tự hỏi, đầu ra là gì? Hàm này sẽ trả về cái gì?

Chúng ta có thể thấy từ ví dụ của bài toán rằng đầu ra của chúng ta là một mảng với mỗi số được thay đổi thành nghịch đảo cộng của nó.

Bây giờ chúng ta biết đầu vào và đầu ra. Tiếp theo chúng ta sẽ đi qua một vài ví dụ về vấn đề này.

Một số ví dụ về đầu vào và đầu ra là gì?

Chúng ta đã có các ví dụ về đầu vào và đầu ra của bài toán trên, nhưng đôi khi bạn có thể tự mình viết ra một vài ví dụ để hiểu rõ hơn vấn đề đang yêu cầu bạn làm gì. Đây là một ví dụ đầu ra và đầu vào:

//input
[2, 3, -4]

//ouput
[-2, -3, 4]

Bây giờ chúng tôi biết đầu vào và đầu ra của chúng tôi và chúng tôi có một số ví dụ về chúng.

Bây giờ chúng ta đã sẵn sàng chuyển sang viết mã giả, bước cuối cùng trước khi chúng ta mã hóa giải pháp của mình. mã giả là một mô tả ngôn ngữ đơn giản của các bước trong một thuật toán. Mã giả sẽ giúp chúng tôi lập kế hoạch về cách chúng tôi sẽ giải quyết thách thức này.

Để viết mã giả của chúng ta, trước tiên hãy giải quyết vấn đề từng bước một.

Làm thế nào để giải quyết vấn đề

Chúng ta cần có khả năng xem xét và thực hiện điều gì đó với từng số trong mảng đầu vào. Chúng tôi cũng muốn trả về một mảng mới với mỗi số đã thay đổi.

Đọc thêm  Học JavaScript – Khóa học JS miễn phí cho người mới bắt đầu

Để làm điều này, chúng ta có thể sử dụng map trong JavaScript, trả về một mảng mới được điền với kết quả gọi một hàm được cung cấp trên mọi phần tử trong mảng gọi.

Chúng tôi sẽ viết điều này ra bằng mã giả như bước đầu tiên của chúng tôi:

//step one: go through each number in the array using map method

Đối với mỗi số trong mảng, chúng tôi muốn thay đổi nó thành nghịch đảo cộng của nó. Chúng ta cần hiểu điều này có nghĩa là gì, vì vậy chúng ta sẽ làm rõ định nghĩa của phép cộng nghịch đảo:

Trong toán học, các số nghịch đảo của một số a là số mà khi cộng với a sẽ ra số không. Đây là vài ví dụ:

Nghịch đảo cộng của −10 là +10, vì −10 + 10 = 0

Nghịch đảo cộng của −2 là +2, vì −2 + 2 = 0

Để lấy nghịch đảo cộng của một số, chúng ta có thể nhân nó với -1. Chúng ta có thể kiểm tra điều này với một số ví dụ:

10 * -1 = -10

-2 * -1 = 2

Bây giờ chúng ta biết rằng nếu chúng ta nhân mỗi số với -1, chúng ta sẽ nhận được nghịch đảo cộng của số đó. Chúng ta có thể thêm phần này vào mã giả của mình:

/* 
step one: go through each number in the array using the map method
step two: multiply each number by -1
*/

Cuối cùng, chúng ta cần trả về mảng mới của mình.

/* 
step one: go through each number in the array using the map method
step two: multiply each number by -1
step three: return new array
*/

Cách viết mã giải pháp

Bây giờ chúng ta đã viết mã giả của mình, chúng ta có thể mã hóa giải pháp của mình bằng cách sử dụng nó làm hướng dẫn.

function invert(array) {
   return array.map(num =>   {
     return num * -1
   })
}

Khi chúng tôi thử nghiệm giải pháp của mình trên CodeWars, nó hoạt động! Chúng tôi tạo chức năng của chúng tôi, invert, chấp nhận một dãy số. Chúng tôi ánh xạ qua mảng của mình và với mỗi số trong đó, chúng tôi nhân nó với -1. Sau đó, chúng tôi trả lại mảng mới của chúng tôi.

Đọc thêm  Số ngẫu nhiên JavaScript – Cách tạo số ngẫu nhiên trong JS

Chúng ta có thể thấy rằng nó vượt qua tất cả các bài kiểm tra. Nếu chúng tôi muốn làm cho giải pháp của mình trông gọn gàng hơn một chút, chúng tôi có thể thực hiện trả về ngầm định và loại bỏ các dấu ngoặc nhọn bên trong và bên trong. return từ khóa.

function invert(array) {
   return array.map(num => num * -1)
}

Đó là nó! Bây giờ chúng ta đã hoàn thành bài toán đảo ngược giá trị của mình. Chúng tôi đảm bảo rằng chúng tôi đã hiểu vấn đề trước, viết ra các bước để hoàn thành vấn đề bằng mã giả, sau đó mã hóa giải pháp.

Để xem các giải pháp khác cho vấn đề này, bạn có thể xem chúng tại đây.

Cảm ơn bạn đã đọc!

Nếu bạn thích bài đăng này, hãy đăng ký danh sách email của tôi, nơi tôi gửi các bài báo mới nhất của mình và thông báo về các cuộc họp cho câu lạc bộ viết mã của tôi.

Nếu bạn có phản hồi hoặc câu hỏi về bài đăng này, vui lòng Tweet cho tôi @madisonkanna.





Zik.vn – Biên dịch & Biên soạn Lại

spot_img

Create a website from scratch

Just drag and drop elements in a page to get started with Newspaper Theme.

Buy Now ⟶

Bài viết liên quang

DMCA.com Protection Status