← Xem lý thuyết

Bài tập Mảng & JSON trong JavaScript (Không đáp án)

  1. Arrays: Viết function tạo và truy cập mảng
    Yêu cầu: Viết hàm createColors() trả về mảng gồm các màu "red", "green", "blue".
    Đầu vào: Không có
    Ví dụ: createColors()
    Kết quả ra: ["red", "green", "blue"]

    Yêu cầu: Viết hàm getFirstAndLast(arr) trả về mảng gồm phần tử đầu và cuối của mảng truyền vào.
    Đầu vào: arr là một mảng bất kỳ
    Ví dụ: getFirstAndLast([10, 20, 30, 40])
    Kết quả ra: [10, 40]
  2. Array Methods: Viết function thêm, xóa phần tử
    Yêu cầu: Viết hàm addAndRemove(nums) nhận mảng số, thêm 4 vào cuối, xóa phần tử đầu, trả về mảng mới.
    Đầu vào: nums là một mảng số
    Ví dụ: [1, 2, 3]
    Kết quả ra: Mảng mới sau khi đã thêm 4 vào cuối và xóa phần tử đầu
    Ví dụ kết quả: [2, 3, 4]
  3. Array Search: Viết function tìm kiếm
    Yêu cầu: Viết hàm findIndexAndCheck(arr, value) trả về vị trí của value trong mảng và kiểm tra mảng có chứa value không.
    Đầu vào: arr là mảng bất kỳ, value là giá trị cần tìm
    Ví dụ: findIndexAndCheck([5,8,12,20], 12)
    Kết quả ra: Object có 2 thuộc tính: index (vị trí value trong mảng, -1 nếu không có), exists (true/false)
    Ví dụ kết quả: { index: 2, exists: true }
  4. Sorting Arrays: Viết function sắp xếp mảng số lớn và mảng học sinh
    Cho sẵn 2 biến dữ liệu sau:
    const numbers = [34, 12, 87, 45, 23, 56, 78, 90, 11, 67, 29, 38, 49, 53, 61, 72, 84, 19, 25, 99];
    const students = [ {name: "Nguyen Van A", age: 18}, {name: "Le Thi B", age: 20}, {name: "Tran Van C", age: 17}, {name: "Pham Thi D", age: 19}, {name: "Bui Van E", age: 18} ];

    Yêu cầu: Viết hàm sortNumbers(arr, asc=true) sắp xếp mảng numbers tăng hoặc giảm dần.
    Đầu vào: arr là biến numbers đã cho, asc là boolean (true: tăng dần, false: giảm dần)
    Ví dụ: sortNumbers(numbers, true)
    Kết quả ra: Mảng số đã sắp xếp
    Ví dụ kết quả: [11, 12, ...]

    Yêu cầu: Viết hàm sortStudentsByName(arr)sortStudentsByAge(arr) để sắp xếp mảng students theo tên hoặc tuổi.
    Đầu vào: arr là biến students đã cho
    Ví dụ: sortStudentsByName(students)
    Kết quả ra: Mảng học sinh đã sắp xếp theo tên hoặc tuổi
    Ví dụ kết quả: [{name: "Bui Van E", age: 18}, ...]
  5. Array Iteration: Viết function tính tổng mảng
    Yêu cầu: Viết hàm sumArray(arr) trả về tổng các phần tử của mảng.
    Đầu vào: arr là mảng số
    Ví dụ: sumArray([2, 4, 6])
    Kết quả ra: Tổng các phần tử của mảng
    Ví dụ kết quả: 12
  6. Array Const: Viết function sửa phần tử mảng const
    Yêu cầu: Viết hàm replaceFirstFruit(arr, newName) thay đổi phần tử đầu tiên của mảng const fruits thành newName.
    Đầu vào: arr là mảng const, newName là chuỗi
    Ví dụ: replaceFirstFruit(["apple", "banana"], "orange")
    Kết quả ra: Mảng sau khi đã thay đổi phần tử đầu tiên
    Ví dụ kết quả: ["orange", "banana"]
  7. JavaScript JSON: Viết function chuyển object thành JSON và ngược lại
    Yêu cầu: Viết hàm toJSON(obj) chuyển object thành chuỗi JSON, và hàm fromJSON(str) chuyển chuỗi JSON thành object.
    Đầu vào: obj là object, str là chuỗi JSON
    Ví dụ: toJSON({name: "An", age: 20}), fromJSON('{"name":"An","age":20}')
    Kết quả ra: toJSON trả về chuỗi JSON, fromJSON trả về object
    Ví dụ kết quả: toJSON({name: "An", age: 20}) // Kết quả: '{"name":"An","age":20}'
    fromJSON('{"name":"An","age":20}') // Kết quả: {name: "An", age: 20}
  8. Nhập và sắp xếp danh sách học sinh
    Yêu cầu: Viết hàm addStudent(arr, name, age) để thêm object học sinh vào mảng. Viết sẵn hàm sortStudents(arr, by) để sắp xếp theo "name" hoặc "age". Khi cần thì gọi hàm tương ứng.
    Đầu vào: arr là mảng học sinh, name là chuỗi, age là số, by"name" hoặc "age"
    Ví dụ: addStudent(students, "Nguyen Van A", 18), sortStudents(students, "age")
    Kết quả ra: Mảng học sinh đã thêm mới hoặc đã sắp xếp
    Ví dụ kết quả: sortStudents([{name: "B", age: 20}, {name: "A", age: 18}], "name") // Kết quả: [{name: "A", age: 18}, {name: "B", age: 20}]
  9. Array Search: Lọc các số chia hết cho 4
    Cho mảng số sau: [12, 7, 16, 25, 8, 33, 40, 21, 4, 18].
    Yêu cầu: Viết hàm findDivisibleBy4(arr) trả về mảng gồm các số chia hết cho 4 trong arr.
    Đầu vào: arr là mảng số.
    Ví dụ: findDivisibleBy4([12, 7, 16, 25, 8, 33, 40, 21, 4, 18])
    Kết quả ra: [12, 16, 8, 40, 4]
  10. Object & Array Search: Tìm kiếm và sắp xếp học sinh
    Cho mảng học sinh sau:
    const students = [ { name: "An", class: 12, math: 9 }, { name: "Bình", class: 11, math: 7.5 }, { name: "Cường", class: 12, math: 8.2 }, { name: "Dũng", class: 10, math: 6 }, { name: "Hà", class: 12, math: 7.8 } ];

    1. Viết hàm findGrade12(arr) trả về mảng các học sinh lớp 12.
    2. Viết hàm findMathAbove8(arr) trả về mảng các học sinh có điểm toán trên 8.
    3. Viết hàm sortStudentsByName(arr) trả về mảng học sinh đã sắp xếp theo tên (A-Z).
    Đầu vào: arr là mảng object học sinh như trên.
    Ví dụ:
    findGrade12(students) // Kết quả: [{ name: "An", class: 12, math: 9 }, { name: "Cường", class: 12, math: 8.2 }, { name: "Hà", class: 12, math: 7.8 }]
    findMathAbove8(students) // Kết quả: [{ name: "An", class: 12, math: 9 }, { name: "Cường", class: 12, math: 8.2 }]
    sortStudentsByName(students) // Kết quả: [{ name: "An", ... }, { name: "Bình", ... }, { name: "Cường", ... }, { name: "Dũng", ... }, { name: "Hà", ... }]
  11. Array Methods & Search: Tìm và xóa phần tử trong mảng
    Cho mảng số sau: [5, 12, 8, 20, 33, 7, 18, 25, 40, 16, 3, 27].
    Yêu cầu: Viết hàm findAndRemove(arr, value) để tìm value trong mảng arr. Nếu tìm thấy, hãy xóa giá trị đó khỏi mảng và trả về mảng mới.
    Đầu vào: arr là mảng số, value là số cần tìm.
    Ví dụ: findAndRemove([5, 12, 8, 20, 33, 7, 18, 25, 40, 16, 3, 27], 20)
    Kết quả ra: [5, 12, 8, 33, 7, 18, 25, 40, 16, 3, 27] (đã xóa số 20)