【发布时间】:2018-09-26 12:14:26
【问题描述】:
我一直在苦苦挣扎一天,一整天都在搜索整个 stackoverflow 和谷歌以尝试解决这个问题,但我很绝望。 我已经尝试了几十种解决方案,但似乎都没有奏效......
我有一个对象数组,其中每个对象都有一个名为 pid 且具有特定值的键。 现在我想删除所有具有相同的特定 pid 值的对象。
我试过了
forEach, filter, $.each, $.grep 和许多其他函数试图解决这个问题,但都失败了(或者我每次都做错了什么?)
简单地说,我想删除每个具有特定 pid 值的对象。我当前的代码是:
$.each(cart, function(i){
if(cart[i].pid === pid){
cart.splice(i,1);
}
});
但是这个一直抛出:Cannot read property pid of undefined
其他函数仅删除(随机?)数量的对象,数组中仍有一些剩余的具有不需要的 pid 值。
我不一定要坚持使用$.each 函数,因此非常感谢任何解决方案。
对象数组:
[{"id":1523898500862,"amm":1,"type":"t","name":"bluecheese","pid":1523898494726,"cost":0.5},{"id":1523898501937,"amm":1,"type":"t","name":"edam","pid":1523898494726,"cost":0.5},{"id":1523898505766,"amm":1,"type":"t","name":"mozzarella","pid":1523898494726,"cost":1}]
您可以看到所有三个对象都具有相同的 pid 值,我想根据那个 pid
将它们全部删除【问题讨论】:
-
发布您的数据。
-
请提供Minimal, Complete, and Verifiable example,
cart变量的示例数据将更容易测试。 -
如果它真的是一个对象,那么它就不应该有重复的键。
-
我稍后会发布字符串化的数据
标签: javascript arrays object each splice