在Javascript中从多维数组中删除元素
我试图从javascript中的多维数组中删除一个元素,该数组的构建方式如下:在Javascript中从多维数组中删除元素,javascript,arrays,multidimensional-array,Javascript,Arrays,Multidimensional Array,我试图从javascript中的多维数组中删除一个元素,该数组的构建方式如下: selectedClients.push({client: id, package: package_id, transfer: transfer_id}); 然而,在这个数组中的多个传输中,可以有多个客户端,在多个包中,如何使用所有三个标识符(而不仅仅是一个标识符)从这个数组中删除一个元素 例如: Array[0] { client: 1 package: 1 transfer: 1 } Array[1] { c
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
}
非常感谢您可以滚动您自己的函数,该函数将接收具有与数组中属性数量相同的属性的对象,然后
将找到的对象切片出来:
假设你通过:
{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;
}
//如果找到,则返回新数组;如果没有,则返回false
函数removeObjectFromArray(objectToRemove,arrayOfObjects){
对于(变量i=0;i
对象的顺序很重要,因为如果对象的顺序不同,stringify
将不匹配。如果这是一个问题,您将不得不编写一个更大的函数来比较各个键。您可以滚动自己的函数,该函数将接收一个具有与数组中属性数量相同的属性的对象,然后切片它找到的对象:
假设你通过:
{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;
}
//如果找到,则返回新数组;如果没有,则返回false
函数removeObjectFromArray(objectToRemove,arrayOfObjects){
对于(变量i=0;i
对象的顺序很重要,因为如果对象的顺序不同,stringify
将不匹配。如果这是一个问题,您将不得不编写一个更大的函数,分别比较键。这不是多维数组,这是一个对象数组,非常不同:)看看方法这不是多维数组,这是一个对象数组,非常不同:)看看方法