从 Javascript 中的多维数组中删除元素

Removing element from multidimensional array in Javascript

本文关键字:数组 删除 元素 Javascript      更新时间:2023-09-26

我正在尝试从javascript中的多维数组中删除一个元素,该数组的构建方式如下:

selectedClients.push({client: id, package: package_id, transfer: transfer_id});

但是,可以有多个客户端,在此数组中的多个传输中的多个包中,如何使用所有三个标识符而不仅仅是一个标识符从此数组中删除元素?

例如:

Array[0]
{
client: 1
package: 1
transfer: 1
}
Array[1]
{
client: 2
package: 1
transfer: 1
}
Array[2]
{
client: 1
package: 2
transfer: 2
}

非常感谢

你可以滚动你自己的函数,它将接受一个具有与数组中属性完全相同数量的对象,然后slice出它找到的对象:

假设您传入:

{client: 1, package: 1, transfer: 1}

让我们建造!

//Returns the new array if found, false if nothing
function removeObjectFromArray(objectToRemove, arrayOfObjects) {
    for (var i = 0; i < arrayOfObjects.length; i++) {
        var stringyArrObj       = JSON.stringify(arrayOfObjects[i]),
            stringyRemoveObject = JSON.stringify(objectToRemove);
            if (stringyArrObj === stringyRemoveObject)
                return arrayOfObjects.slice(i, i+1);
    }
return false; 
}
对象的

顺序很重要,因为如果对象的排序方式不同,stringify则不匹配。如果这是一个问题,你必须编写一个更大的函数来单独比较键。