我有一个我在TypeScript中创建的数组,它有一个我用作键的属性。如果我有那个钥匙,我怎么能从它移除一个物品?如何在TypeScript中删除数组项目?
回答
与在JavaScript中使用的方式相同。
delete myArray[key];
请注意,这将元素设置为undefined
。
最好使用Array.prototype.splice
功能:
var index = myArray.indexOf(key, 0);
if (index > -1) {
myArray.splice(index, 1);
}
如果数组对象的类型,那么最简单的方法是
let foo_object // Item to remove
this.foo_objects = this.foo_objects.filter(obj => obj !== foo_object);
这不会删除任何简单的过滤条件。如果实际需要修改列表,这不是方法。 – user573434 2017-06-13 18:29:55
@ user573434是的,你说得对,正如名字所示。但是,如果你想删除一个成功的删除api调用等对象的情况下,这是简单的方法。 – 2017-06-14 09:10:48
这对我没有一个唯一的键属性的对象数组完美的作品。 @ user573434过滤器方法返回一个没有过滤对象的新数组,因此生成的数组确实已删除该对象。 – Jason 2017-06-25 03:22:11
这是我该解决方案:
onDelete(id: number) {
this.service.delete(id).then(() => {
let index = this.documents.findIndex(d => d.id === id); //find index in your array
this.documents.splice(index, 1);//remove element from array
});
event.stopPropagation();
}
使用ES6您可以使用此代码:
removeDocument(doc){
this.documents.forEach((item, index) => {
if(item === doc) this.documents.splice(index,1);
});
}
最好的解决方案可以在不改变数组引用的情况下移除,并且可以实现特定的等式algorythm – Sid 2017-11-21 10:43:02
您可以使用数组上的splice
方法删除元素。
例如,如果你有一个数组名为arr
使用以下命令:
arr.splice(2,1);
所以这里与指数2个元素是出发点和参数2将确定有多少元素被删除。
如果你想删除名为arr
然后做这个数组的最后一个元素:
arr.splice(arr.length,1);
这将返回ARR与删除最后一个元素。
- 1. 如何删除数组中的项目
- 2. 从数组中删除数组项目
- 3. Xcode - 如何从数组中的数组中删除项目?
- 4. 如何从expandableListview中删除组项目?
- 5. 如何删除子数组中的项目时删除主数组?
- 6. 从JavaScript中移除项目从数组中删除项目
- 7. 如何从Visual Studio项目中删除Typescript支持?
- 8. 从通用数组中删除项目
- 9. PowerShell从数组中删除项目[0]
- 10. 删除PHP数组中项目的.htm
- 11. 从数组列表中删除项目
- 12. 从数组中删除项目jQuery
- 13. 从数组中删除多个项目
- 14. 从Laravel Session数组中删除项目
- 15. 删除数组中的特定项目
- 16. 从ListPreference中删除数组项目
- 17. 删除会话数组中的项目
- 18. 从阵列中删除项目数组
- 19. jQuery从数组中删除项目
- 20. 从动态数组中删除项目
- 21. C#从类数组中删除项目
- 22. 删除数组中的项目
- 23. 从数组中删除项目?
- 24. PHP从数组中删除项目
- 25. 如何使用onclick函数删除数组中的项目?
- 26. 如何从ListView中删除项目而不从数据库中删除项目?
- 27. 如何从jquery中的数组对象中删除项目
- 28. 如何从PowerShell中的数组中删除项目?
- 29. 如何从jquery中的数组中删除项目?
- 30. 如何添加/删除Java中的数组中的项目?
您可以添加一个类型! 'var index:number = myArray.indexOf(key,0);' – CorayThan 2015-12-19 00:38:26
@CorayThan当然,它会被隐式地键入为'indexOf'返回一个'number'? – Chris 2016-06-08 10:27:02
@Chris虽然在这种简单情况下很明显,但如果您明确定义每个变量的类型,它可以帮助您更快地诊断错误。您已经在不止一次的地方使用了'index',并且其中一个地方('splice')希望看到一个数字,否则您会得到一个错误。目前编译器不能阻止你在那里犯错误。 – 2016-11-02 09:56:35