繁体   English   中英

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

[英]Removing element from multidimensional array in Javascript

我试图从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不会匹配。 如果这是一个问题,则必须编写一些较大的函数,分别比较各个键。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM