Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Cập nhật mảng đối tượng trong JavaScript (thêm/sửa)

Duyệt mảng, nếu tìm thấy object khớp điều kiện (so sánh listOfSubject) thì cập nhật, ngược lại push() object mới.

Ví dụ


var students = [
    { firstName: "John", listOfSubject: ['MySQL', 'MongoDB'] },
    { firstName: "David", listOfSubject: ['Java', 'C'] }
];

var newStudent = { firstName: "Bob", listOfSubject: ['JavaScript'] };

function upsertStudent(arr, newObj) {
    for (var i = 0; i < arr.length; i++) {
        // So sánh mảng subject (chuyển thành chuỗi)
        if (arr[i].listOfSubject.join("") === newObj.listOfSubject.join("")) {
            arr[i] = newObj; // Cập nhật
            return;
        }
    }
    arr.push(newObj); // Thêm mới
}

upsertStudent(students, newStudent);
console.log(students);

Cách chạy

node demo.js

Kết quả


[
  { firstName: 'John', listOfSubject: [ 'MySQL', 'MongoDB' ] },
  { firstName: 'David', listOfSubject: [ 'Java', 'C' ] },
  { firstName: 'Bob', listOfSubject: [ 'JavaScript' ] }
]

Lưu ý: So sánh mảng bằng join("") chỉ đúng nếu thứ tự phần tử giống hệt. Dùng JSON.stringify() hoặc so sánh sâu cho chắc chắn.