首页 > 解决方案 > 动态从 JSON 对象中删除项目

问题描述

我想在某些条件下从 JSON 对象中删除某些项目。

我正在发出两个 Ajax 请求,一个是从 API 端点获取项目并将 JSON 对象保存在一个名为items. 我正在使用ID每个项目的 来发出后续的 API 请求。

如果第二个 API 返回非空对象,请从我的 JSON 对象中删除特定项目。然后渲染项目(意味着只显示尚未批准的项目)。

API 请求 1

var items;

function fetchItems() {
  $.ajax({
    url: urlOne,
    method: "GET",
    headers: {
      "Accept": "application/json; odata=verbose"
    },
    success: function(data) {
      items = data.d.results;
      getPendingItems();
    },
  });
}

API 请求 2

function getPendingItems() {
  for (var i = items.length - 1; i >= 0; i--) {
    $.ajax({
      url: urlTwo + items[i].Id,
      method: "GET",
      headers: {
        "Accept": "application/json; odata=verbose"
      },
      success: function(data) {
        if ($.isEmptyObject(data.d.results)) {
          //
        } else {
          removeItems(i);
        }
      },
    })
  }
}

function removeItems(key) {
  delete items[key];
}

我的数据结构

[
    {
        "Id": 1,
        "Item_name": "test1"
    },
    {
        "Id": 2,
        "Item_name": "test2"
    },
    {
        "Id": 3,
        "Item_name": "test3"
    },
]

但是,这些项目并未从我的 JSON 对象中删除。我最终渲染了所有项目

标签: javascriptjquery

解决方案


推荐阅读