Xin chào mọi người, mình đang gặp một bài toán này mà lý bí quá, yêu cầu đặt ra là không dùng vòng lặp ( các loại như for, foreach, while…), mọi người có ý tưởng gì không ạ ?
Mình chân thành cảm ơn
Xin chào mọi người, mình đang gặp một bài toán này mà lý bí quá, yêu cầu đặt ra là không dùng vòng lặp ( các loại như for, foreach, while…), mọi người có ý tưởng gì không ạ ?
Mình chân thành cảm ơn
Dùng map hoặc đệ quy thì sao nhỉ
Bạn không cho biết rõ lý do tại sao không được dùng vòng lặp nên tôi không thể trả lời chính xác. Nhưng nếu yêu cầu là không dùng các lệnh liên qua tới vòng lặp (như for, foreach, while) theo syntax thì có vài cách khác nhau. Sau đây là một ví dụ (chỉ chạy với JavaScript theo ES6):
results = objects.filter(i => keys.includes(Object.keys(i).toString()));
trong ví dụ trên, chúng ta sử dụng arrow function (hay là lambda expression) để trả về một Dictionary mới (results
) từ Dictionary ban đầu (objects
) sau khi filter bằng các key trong array keys
do bạn định nghĩa (bạn nên tránh dùng các từ khóa đặc biệt như keys
hay objects
để đặt tên cho các biến - trong ví dụ trên, hàm keys
trong Object.keys()
trùng tên với array keys
của bạn. Dù nó không ảnh hưởng đến kết quả trong trường hợp này nhưng rất dễ gây hiểu nhầm khi phân tích source code).
Thật ra trong cách dùng này, dù chúng ta không sử dụng các lệnh cụ thể có liên quan đến vòng lặp, nhưng về bản chất, nó vẫn là một cấu trúc lặp. Vì vậy, tôi không hiểu lắm vì sao bạn lại được yêu cầu không dùng vòng lặp.
à cũng không luôn ạ, em xem trên mạng có câu hỏi dạng này cũng không giải được nên lên nhờ mọi người chỉ ấy mà
Cảm ơn bác, bác tận tình quá, quá chi tiết và dễ hiểu, em mới mò vào javascript thôi, thấy trên mạng có bài tập này muốn thử sức mà không mần được nên lên đây hỏi mọi người, cảm ơn bác rất rất nhiều ạ.