Nếu chúng ta muốn xóa một đối tượng có ID cụ thể khỏi mảng thì sao?
Đăng ký bản tin Coding Beauty
Có được những hiểu biết hữu ích và nâng cao kiến thức phát triển web của bạn với các mẹo và hướng dẫn hàng tuần từ Coding Beauty. Hơn 2.000 nhà phát triển đăng ký
Để xóa một phần tử khỏi mảng bằng ID trong JavaScript, hãy sử dụng phương thức findIndex() để tìm chỉ mục của đối tượng có ID trong mảng. Sau đó gọi phương thức
Phương thức ArrayfindIndex() trả về chỉ mục của phần tử đầu tiên trong một mảng vượt qua kiểm tra được chỉ định bởi hàm gọi lại
const arr = [9, 8, 7, 6, 5];
const index = arr.findIndex((num) => num === 7);
console.log(index); // 2
Chúng tôi chỉ định một bài kiểm tra rằng một đối tượng trong mảng đó sẽ chỉ vượt qua nếu nó có ID bằng với ID đã chỉ định. Điều này làm cho findIndex() trả lại chỉ mục của đối tượng có ID đó
0 thay đổi mảng đã truyền. Điều này giới thiệu một tác dụng phụ vào chức năng
const arr1 = ['a', 'b', 'c'];
// Removing elements
arr1.splice(1, 2);
console.log(arr1); // [ 'a' ]
// Removing and adding new elements
const arr2 = ['a', 'b', 'c'];
arr2.splice(1, 2, 'd', 'e');
console.log(arr2); // [ 'a', 'd', 'e' ]
6 của chúng tôi. Để tránh sửa đổi mảng đã truyền và tạo một hàm thuần túy, hãy tạo một bản sao của mảng và gọi ____1_______0 trên bản sao, thay vì bản gốc
Các chức năng không sửa đổi trạng thái bên ngoài (i. e. , các hàm thuần túy) có xu hướng dễ dự đoán hơn và dễ suy luận hơn về. Điều này làm cho nó trở thành một phương pháp hay để hạn chế số lượng tác dụng phụ trong chương trình của bạn
2. Phương pháp Array const arr1 = ['a', 'b', 'c'];
// Removing elements
arr1.splice(1, 2);
console.log(arr1); // [ 'a' ]
// Removing and adding new elements
const arr2 = ['a', 'b', 'c'];
arr2.splice(1, 2, 'd', 'e');
console.log(arr2); // [ 'a', 'd', 'e' ]
9
Chúng ta cũng có thể xóa một phần tử khỏi mảng bằng ID bằng phương thức
const arr1 = ['a', 'b', 'c'];
// Removing elements
arr1.splice(1, 2);
console.log(arr1); // [ 'a' ]
// Removing and adding new elements
const arr2 = ['a', 'b', 'c'];
arr2.splice(1, 2, 'd', 'e');
console.log(arr2); // [ 'a', 'd', 'e' ]
9. Chúng tôi gọi
const arr1 = ['a', 'b', 'c'];
// Removing elements
arr1.splice(1, 2);
console.log(arr1); // [ 'a' ]
// Removing and adding new elements
const arr2 = ['a', 'b', 'c'];
arr2.splice(1, 2, 'd', 'e');
console.log(arr2); // [ 'a', 'd', 'e' ]
9 trên mảng, chuyển một cuộc gọi lại trả về
const arr = [
{ id: 1, name: 'John' },
{ id: 2, name: 'Kate' },
{ id: 3, name: 'Peter' },
];
// No such element with ID of 9
const objWithIdIndex = arr.findIndex((obj) => obj.id === 9);
console.log(objWithIdIndex); // -1
// ❌ No if check
arr.splice(objWithIdIndex, 1); // ❌ Removes last element!
// [ { id: 1, name: 'John' }, { id: 2, name: 'Kate' } ]
console.log(arr);
2 cho mọi phần tử trong mảng đó ngoại trừ đối tượng có ID đã chỉ định
Trong ví dụ của chúng tôi, chúng tôi đặt một bài kiểm tra rằng một đối tượng trong mảng sẽ chỉ vượt qua nếu thuộc tính
const arr = [
{ id: 1, name: 'John' },
{ id: 2, name: 'Kate' },
{ id: 3, name: 'Peter' },
];
// No such element with ID of 9
const objWithIdIndex = arr.findIndex((obj) => obj.id === 9);
console.log(objWithIdIndex); // -1
// ❌ No if check
arr.splice(objWithIdIndex, 1); // ❌ Removes last element!
// [ { id: 1, name: 'John' }, { id: 2, name: 'Kate' } ]
console.log(arr);
5 của nó không bằng ID đã chỉ định. Điều này đảm bảo rằng đối tượng có ID đã chỉ định không được bao gồm trong mảng mới được trả về từ
const arr1 = ['a', 'b', 'c'];
// Removing elements
arr1.splice(1, 2);
console.log(arr1); // [ 'a' ]
// Removing and adding new elements
const arr2 = ['a', 'b', 'c'];
arr2.splice(1, 2, 'd', 'e');
console.log(arr2); // [ 'a', 'd', 'e' ]
9
Mọi điều điên rồ mà JavaScript làm
Hướng dẫn hấp dẫn về những cảnh báo tinh tế và những phần ít được biết đến của JavaScript
Đăng ký và nhận ngay một bản sao miễn phí
Ayibatari Ibaba
Ayibatari Ibaba là nhà phát triển phần mềm có nhiều năm kinh nghiệm xây dựng trang web và ứng dụng. Anh ấy đã viết rất nhiều về nhiều chủ đề lập trình và đã tạo ra hàng chục ứng dụng và thư viện mã nguồn mở