我试图在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
}
非常感谢
答案 0 :(得分:0)
您可以滚动自己的函数,该函数将接收具有与数组中的属性完全相同的属性的对象,然后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
将不会匹配。如果这是一个问题,你将不得不写一些比较密钥的更大功能。