
Вот пример того, как вы можете удалить элемент из массива в JavaScript, используя его свойство id:
const array = [{id: 1, name: 'John'}, {id: 2, name: 'Jane'}, {id: 3, name: 'Jack'}];
function deleteById(array, id) {
for (let i = 0; i < array.length; i++) {
if (array[i].id === id) {
array.splice(i, 1);
break;
}
}
}
deleteById(array, 2);
// array is now [{id: 1, name: 'John'}, {id: 3, name: 'Jack'}]
Эта функция принимает массив и id в качестве аргументов, а затем перебирает массив в поисках объекта с соответствующим свойством id. Когда он находит совпадение, он удаляет объект из массива, используя метод splice().
Вот пример того, как вы можете использовать вышеуказанную функцию в компоненте React или Next.js для удаления элемента из массива:
import React, { useState } from 'react';
function MyComponent() {
const [array, setArray] = useState([{id: 1, name: 'John'}, {id: 2, name: 'Jane'}, {id: 3, name: 'Jack'}]);
function deleteById(id) {
for (let i = 0; i < array.length; i++) {
if (array[i].id === id) {
array.splice(i, 1);
break;
}
}
setArray([...array]);
}
return (
<div>
{array.map(item => (
<div key={item.id}>
<span>{item.name}</span>
<button onClick={() => deleteById(item.id)}>Delete</button>
</div>
))}
</div>
);
}
Этот компонент отображает список объектов в переменной состояния array и отображает свойство name каждого объекта в элементе span. Он также включает кнопку Delete для каждого объекта, при нажатии на которую вызывается функция deleteById() и передается id объекта в качестве аргумента. Затем функция deleteById() удаляет объект из array с помощью метода splice() и обновляет состояние с помощью функции setArray().