Angular 9 如何删除具有用户指定索引范围的数组中的一系列对象?
Angular 9 How to delete a range of objects inside an array having indexes range specified by a user?
我正在尝试使用用户指定的索引从对象数组中删除对象。当用户指定 m
和 n
之间的范围时,这意味着所有索引小于 m
或高于 n
的数组,我希望它们从数组。
我在(m=0
和 n=7
时尝试了以下操作:
for (const array in this.data) {
if (parseInt(array) <= 0 || parseInt(array) >7) {
this.data.splice(parseInt(array))
}
}
console.log(this.data)
它工作正常,但是一旦我将 m
更改为 1,所有数组都被清空。
这里是stackblitz.
你的主要问题是获取删除后剩余的对象。这里 Array.slice 函数来拯救。
Array.slice不修改原数组。它只是 returns 一个新的元素数组,它是原始数组的子集。
Array.slice签名
arr.slice(startIndex, endIndex);
考虑以下数组:
const arr = [0, 1, 2, 3, 4, 5, 6, 7, 8];
要从值 [2, 3, 4, 5] 获取数组的一部分,我们写:
var slicedArr = arr.slice(2, 6);
请注意,在这里,我们将第二个参数设为 6 而不是 5。
执行上面的代码后,我们得到的值为:
arr // [0, 1, 2, 3, 4, 5, 6, 7, 8]
slicedArr // [2, 3, 4, 5]
Array.splice 的第二个参数是要删除的元素数。
https://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_splice
如果未指定,它将删除指定索引中的所有元素,包括指定索引。
我正在尝试使用用户指定的索引从对象数组中删除对象。当用户指定 m
和 n
之间的范围时,这意味着所有索引小于 m
或高于 n
的数组,我希望它们从数组。
我在(m=0
和 n=7
时尝试了以下操作:
for (const array in this.data) {
if (parseInt(array) <= 0 || parseInt(array) >7) {
this.data.splice(parseInt(array))
}
}
console.log(this.data)
它工作正常,但是一旦我将 m
更改为 1,所有数组都被清空。
这里是stackblitz.
你的主要问题是获取删除后剩余的对象。这里 Array.slice 函数来拯救。
Array.slice不修改原数组。它只是 returns 一个新的元素数组,它是原始数组的子集。
Array.slice签名
arr.slice(startIndex, endIndex);
考虑以下数组:
const arr = [0, 1, 2, 3, 4, 5, 6, 7, 8];
要从值 [2, 3, 4, 5] 获取数组的一部分,我们写:
var slicedArr = arr.slice(2, 6);
请注意,在这里,我们将第二个参数设为 6 而不是 5。 执行上面的代码后,我们得到的值为:
arr // [0, 1, 2, 3, 4, 5, 6, 7, 8]
slicedArr // [2, 3, 4, 5]
Array.splice 的第二个参数是要删除的元素数。 https://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_splice
如果未指定,它将删除指定索引中的所有元素,包括指定索引。