当前位置: 首页 > 知识库问答 >
问题:

如何按值从Javascript对象数组中删除对象?[副本]

商和雅
2023-03-14

我正在使用javascript定义对象数组,并希望根据对象属性删除值。

我用了下面的代码:

     var addedItems = [];
     var item = {};
     item["TId"] = "";
     item["VNo"] = "";
     item["IDate"] = "";
     item["Rate"] = 22;
     item["ItemId"] = 12;
     item["Quantity"] = 1;
     item["ItemTypeId"] = 3;
     addedItems.push(item);

     removeValueFromObjectByValue(addedItems,12);


     function removeValueFromObjectByValue(jsonObject, value) {
        jQuery.each(jsonObject, function (i, val) {
            if (val.ItemId == value) // delete index
            {
                return;
                delete jsonObject[i];
                return;
            }
        });
    }

预期结果:当我删除值时,它应该给我一个包含0个元素的数组。

实际输出:当我删除值时,我得到的数组有1个元素,元素值为null。

共有1个答案

高修伟
2023-03-14

可以使用Object.values接头。在函数内部使用JSON. parse创建原始数组的新副本

var addedItems = [];
var item = {};
item["TId"] = "";
item["VNo"] = "";
item["IDate"] = "";
item["Rate"] = 22;
item["ItemId"] = 12;
item["Quantity"] = 1;
item["ItemTypeId"] = 3;
addedItems.push(item);

function removeValueFromObjectByValue(arr, num) {
  let newArr = JSON.parse(JSON.stringify(arr))
  arr.forEach(function(item, index) {
    let isNumPresent = Object.values(item).includes(num)
    if (isNumPresent) {
      newArr.splice(index, 1);
    }
  })
  return newArr;
}
console.log(removeValueFromObjectByValue(addedItems, 12));
 类似资料:
  • 我正在尝试从对象数组中删除属性。 我希望var2包含这样的内容。 是否有方法将/cast转换为上述内容?换句话说,我想从对象数组中删除,并将其分配给。我该怎么做?

  • 如何从javascript变量中删除对象/数组?

  • 问题内容: 如何从数组中删除对象?我想删除,其中包括名称的对象从。例如: 我要实现: 问题答案: 您可以使用多种方法从数组中删除项目: 如果要删除position处的元素,请使用: 要么 您可以使用或结合使用参见MDN从数组中删除一个或多个元素,例如

  • 问题内容: 文件: 有没有办法从数组中提取特定对象?IE如何从项数组中提取ID为23的整个项对象。 我努力了: 但是我很确定我没有正确使用’pull’。据我了解,pull将从数组中拉出字段,而不是对象。 关于如何将整个对象从数组中拉出的任何想法。 另外,我尝试在mongoose / nodejs中执行此操作,也不确定这种类型的内容是否在mongoose API中,但我找不到它。 问题答案: 尝试.

  • 问题内容: 我需要从满足条件的数组中删除对象,我可以根据条件更新数组的对象,如下所示: 这正在工作 为了删除我正在这样做 但这不起作用,并给出此错误, ElasticsearchIllegalArgumentException [无法执行脚本]; 嵌套:ConcurrentModificationException; 错误:ElasticsearchIllegalArgumentException

  • 假设我有这样的对象数组: 如何从每个对象中删除时间和单词属性?我的输出应该是这样的: