Tổng số tích cực codewars javascript
Đơn giản, đó là vì hàm
Nhưng, tại sao nó không hoạt động khi bạn cố đặt logic tương tự với dòng mã tiếp theo?
Sự cố xảy ra khi giá trị nhỏ nhất của mảng nằm ở chỉ số lớn hơn 2 chẳng hạn
khi chúng ta cố gắng thực thi mã trên mảng này, hãy thực hiện từng bước một để biết sai ở đâu
Khi thực thi mã trước đó, điều đầu tiên mà hàm sẽ thực hiện là lọc. Nó sẽ lặp qua các phần tử của mảng
Trước khi tiếp tục lặp lại
Phần kết luậnNhư bạn có thể nhận thấy, giá trị 1 đã được kiểm tra hai lần và giá trị 2 hoàn toàn không được kiểm tra, đó là do sự thay đổi đột ngột về thứ tự của mảng trong quá trình lặp lại hiện đang diễn ra của phương thức filter . Điều này đã dẫn đến việc đặt giá trị của 2 vào một vị trí đã được kiểm tra và giá trị của 1 vào một vị trí chưa được kiểm traLưu ý Đây không phải là một giải pháp tối ưu cho một vấn đề như vậy, nó thực hiện quá nhiều công việc để có được giải pháp, (lọc, sắp xếp, rút gọn), đây là những thao tác tốn kém để thực hiện. Một giải pháp tốt hơn sẽ giống như thế này, bao gồm một vòng lặp duy nhất thông qua các phần tử của mảng 6 Tạo một hàm trả về tổng của hai số dương nhỏ nhất cho một mảng gồm 4 số nguyên dương nhỏ nhất. Không có số float hoặc số nguyên không dương nào được chuyển Ví dụ
Giải pháp của tôi
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình Giải trìnhĐầu tiên tôi sử dụng Toán. min() với các giá trị mảng để tôi có thể lấy số nhỏ nhất đầu tiên
Sau đó, tôi ghép số đầu tiên, vì vậy khi tôi sử dụng Toán. min() một lần nữa tôi sẽ lấy phần tử thứ hai
Cuối cùng, tôi chỉ trả về tổng của số thứ nhất và số thứ hai
Bạn nghĩ gì về giải pháp này? Github của tôi |