Qua*_*ges -1 typescript angular ionic4
我已经在这里多次看到这个答案,但它对我不起作用。我需要从数组中删除一个项目,但索引继续返回 -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);
}Run Code Online (Sandbox Code Playgroud)
我在这里看到了这个答案,我们应该使用 array.indexOf()。我正在做一个控制台日志来验证 id 是否正确并且它存在于数组中,但索引一直给我-1。
感谢您的帮助
由于数组中的每个元素都是一个,其中包含类型为 的object属性,因此您可以简单地使用Array.filter()来删除该元素。idstring
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'));Run Code Online (Sandbox Code Playgroud)
Array.splice()在您的实例中不起作用,除非您提供要删除的对象的索引。
如果您坚持使用Array.splice(),首先,您需要在该数组中找到与特定 id 匹配的对象的索引。
const index = data.findIndex(obj => obj.id === removeId)
Run Code Online (Sandbox Code Playgroud)
接下来,您使用 Array.splice 从数组中删除该对象。
if (index > -1) {
array.splice(index, 1);
}
Run Code Online (Sandbox Code Playgroud)
const index = data.findIndex(obj => obj.id === removeId)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
35301 次 |
| 最近记录: |