Thay đổi một thuộc tính theo id trong JavaScript
Bạn có thể cần thay đổi không phải toàn bộ đối tượng, mà là một thuộc tính cụ thể. Hãy xem cách thực hiện điều này.
Giả sử trong biến arr chứa
một mảng các đối tượng:
let arr = [
{
id: 'GYi9GauC4gBF1e2SixDvu',
prop1: 'value11',
prop2: 'value12',
prop3: 'value13',
},
{
id: 'IWSpfBPSV3SXgRF87uO74',
prop1: 'value21',
prop2: 'value22',
prop3: 'value23',
},
{
id: 'JAmjRlfQT8rLTm5tG2m1L',
prop1: 'value31',
prop2: 'value32',
prop3: 'value33',
},
];
Giả sử trong các biến chứa id của phần tử,
tên thuộc tính cần thay đổi và giá trị mới
của thuộc tính:
let id = 'IWSpfBPSV3SXgRF87uO74';
let prop = 'prop1';
let value = '!!!';
Để giải quyết bài toán, thuận tiện sử dụng destructuring và tính toán tên thuộc tính:
let res = arr.map(elem => {
if (elem.id === id) {
return {...elem, [prop]: value};
} else {
return elem;
}
});
Cho các biến sau:
let id = 'JAmjRlfQT8rLTm5tG2m1L';
let prop = 'prop2';
Tạo một nút bấm, khi nhấp vào sẽ
lấy phần tử mảng với id đã chỉ định,
trong đó lấy thuộc tính với tên đã chỉ định
và vào cuối giá trị của thuộc tính đó
sẽ được thêm dấu '!'.
Giả sử cho hai biến với tên thuộc tính:
let id = 'JAmjRlfQT8rLTm5tG2m1L';
let prop1 = 'prop2';
let prop2 = 'prop3';
Sửa đổi bài toán trước đó sao cho khi nhấp, các thay đổi được thực hiện ngay lập tức cho hai thuộc tính đã chỉ định.
Chuyển đổi giải pháp đã nêu trong phần lý thuyết
sang việc sao chép đối tượng bằng Object.assign.