如何从打字稿中的数组中删除项目
How to delete item from an array in typescript
我已经多次在此处看到此答案,但它对我不起作用。我需要从数组中删除一个项目,但索引继续返回 -1。
deleteItinerary(id: string) {
this.dataSvc.removeItinerary(id);
console.log('id', id);
const index = this.itineraries.indexOf(id);
console.log('array', this.itineraries);
console.log('index', index);
}
我在这里看到这个答案,我们应该使用 array.indexOf()。我正在做一个控制台日志来验证 id 是否正确并且它存在于数组中但索引一直给我 -1。
感谢您的帮助
由于数组中的每个元素都是一个 object
,其中包含 id
的 属性 类型 string
,您可以简单地使用 Array.filter() 摆脱那个元素。
const data = [{id:'2'}, {id:'5'}, {id:'9'}];
const removeItinerary = (removeId) => {
const res = data.filter(obj => obj.id !== removeId);
return res;
}
console.log(removeItinerary('5'));
Array.splice() 在您的实例中不起作用,除非您提供要删除的对象的索引。
如果您坚持使用Array.splice()
,首先,您需要在该数组中找到与特定id匹配的对象的索引。
const index = data.findIndex(obj => obj.id === removeId)
接下来,您使用 Array.splice 从数组中删除对象。
if (index > -1) {
array.splice(index, 1);
}
const data = [{id:'2'}, {id:'5'}, {id:'9'}];
const removeItinerary = (removeId) => {
const index = data.findIndex(el => el.id === '5')
if (index > -1) {
data.splice(index, 1);
}
return data;
}
console.log(removeItinerary('5'));
我已经多次在此处看到此答案,但它对我不起作用。我需要从数组中删除一个项目,但索引继续返回 -1。
deleteItinerary(id: string) {
this.dataSvc.removeItinerary(id);
console.log('id', id);
const index = this.itineraries.indexOf(id);
console.log('array', this.itineraries);
console.log('index', index);
}
我在这里看到这个答案,我们应该使用 array.indexOf()。我正在做一个控制台日志来验证 id 是否正确并且它存在于数组中但索引一直给我 -1。
感谢您的帮助
由于数组中的每个元素都是一个 object
,其中包含 id
的 属性 类型 string
,您可以简单地使用 Array.filter() 摆脱那个元素。
const data = [{id:'2'}, {id:'5'}, {id:'9'}];
const removeItinerary = (removeId) => {
const res = data.filter(obj => obj.id !== removeId);
return res;
}
console.log(removeItinerary('5'));
Array.splice() 在您的实例中不起作用,除非您提供要删除的对象的索引。
如果您坚持使用Array.splice()
,首先,您需要在该数组中找到与特定id匹配的对象的索引。
const index = data.findIndex(obj => obj.id === removeId)
接下来,您使用 Array.splice 从数组中删除对象。
if (index > -1) {
array.splice(index, 1);
}
const data = [{id:'2'}, {id:'5'}, {id:'9'}];
const removeItinerary = (removeId) => {
const index = data.findIndex(el => el.id === '5')
if (index > -1) {
data.splice(index, 1);
}
return data;
}
console.log(removeItinerary('5'));