我在TypeScript中创建了一个数组,它有一个属性,我把它用作键。如果我有那把钥匙,我怎么能从里面删除一个项目?
当前回答
这对我很管用。
你的数组:
DummyArray: any = [
{ "id": 1, "name": 'A' },
{ "id": 2, "name": 'B' },
{ "id": 3, "name": 'C' },
{ "id": 4, "name": 'D' }
]
功能:
remove() {
this.DummyArray = this.DummyArray.filter(item => item !== item);
}
注意:这个函数删除数组中的所有对象。如果你想从数组中删除一个特定的对象,那么使用这个方法:
remove(id) {
this.DummyArray = this.DummyArray.filter(item => item.id !== id);
}
其他回答
使用TypeScript扩展运算符(…)
// Your key
const key = 'two';
// Your array
const arr = [
'one',
'two',
'three'
];
// Get either the index or -1
const index = arr.indexOf(key); // returns 0
// Despite a real index, or -1, use spread operator and Array.prototype.slice()
const newArray = (index > -1) ? [
...arr.slice(0, index),
...arr.slice(index + 1)
] : arr;
还有一个使用Typescript的解决方案:
let updatedArray = [];
for (let el of this.oldArray) {
if (el !== elementToRemove) {
updated.push(el);
}
}
this.oldArray = updated;
在ES6中,你可以使用以下代码:
removeDocument(doc){
this.documents.forEach( (item, index) => {
if(item === doc) this.documents.splice(index,1);
});
}
我看到许多抱怨,删除方法不是内置的。考虑使用Set而不是array——它有内置的添加和删除方法。
let a: number[] = [];
a.push(1);
a.push(2);
a.push(3);
let index: number = a.findIndex(a => a === 1);
if (index != -1) {
a.splice(index, 1);
}
console.log(a);
推荐文章
- 比较JUnit断言中的数组,简洁的内置方式?
- 数组到哈希Ruby
- 将Set<T>转换为List<T>的最简洁的方法
- TypeScript错误:属性“X”在类型“Window”上不存在
- Java 8流和数组操作
- 在javascript中从平面数组构建树数组
- 从另一个列表id中排序一个列表
- 我怎么能计算在打字稿2日期之间的时间
- 在bash中传递数组作为参数
- 正确使用错误
- 如何在c++中初始化一个向量
- 用any可以吗?'来检查数组是否为空?
- 从IEnumerable<KeyValuePair<>>重新创建字典
- 为什么我们使用数组而不是其他数据结构?
- 如何修复TS2322:“可以实例化与约束'对象'的不同子类型”?