我有一个包含 4 个对象的数组,每个对象包含 8 个对象的属性数组。
我正在尝试从属性 Array[8] 中删除一个对象
var responseArray = new Array();
responseArray = response.data;
responseArray.forEach(function (resProp) {
if (resProp.alias == "General Details") {
resProp.properties.forEach(function (checkProp) {
if (checkProp.alias == "name") {
responseArray.pop(checkProp);
}
});
}
});
我能够弹出它,但是 responseArray 只有 3 个对象数组而不是 4 个。我认为,这段代码正在删除整个第 4 个对象。
responseArray.pop(checkProp);
关于只删除匹配对象有什么建议吗?
最佳答案
- Pop 方法不适合从数组中删除特定对象
The pop() method removes the last element from an array and returns that element.
- 您应该从
responseArray.properties
数组而不是responseArray
中移除对象
将 responseArray.pop(checkProp);
替换为 resProp.properties.splice( resProp.properties.indexOf(checkProp) , 1 );
关于javascript - 使用javascript从对象数组中删除匹配的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36446531/