【问题标题】:Delete key/value pair from json array obtained from ajax response if key is found如果找到键,则从从 ajax 响应获得的 json 数组中删除键/值对
【发布时间】:2017-08-18 14:53:53
【问题描述】:

我正在从 sharepoint 中的一个列表中获取数据并将其存储在 json 数组中以将其传递给另一个函数以在 Sharepoint 列表中创建一个新项目。第一个函数是:

$.ajax({

    url:  someSharepointListUrl,
    type: "get",
    headers: {"Accept": "application/json;odata=verbose"},
    success: function (data) {
        var array = new Array();
        for (var i=0; i< data.d.results.length; i++) {
            var it=data.d.results[i];
            array.push({
                AllLinks: it.AllLinks,   
                LinkURL: it.LinkURL.Url
            });
        }
        dataCharts=JSON.stringify(array);      
        alert(dataCharts);
        AddDefaultLinks(dataCharts);


    },
    error: function (data) {
        alert(data.responseJSON.error);
    }
});

项目在列表中存储为:[{"Name":"Name1","URL":"http://www.name1.com"},{"Name":"Name2","URL":"http://www.name2.com"}] 创建项目后从列表中获取数据的第二个函数如下:

    $.ajax({
    url:  url,
    type: "get",
    headers: {"Accept": "application/json;odata=verbose"},
    success: function (data) {

        var c = [];
        var stringData = JSON.stringify(data.d.results[0].AllLinks);
        //alert(stringData);
        c.push(JSON.parse(stringData));
        alert(c);

        var xonly = c.filter(function (entry){
            return entry.AllLinks != x; 
        });
       alert(xonly);

    },
    error: function() {
        alert('fail');
    }
});

我需要匹配这个新创建的列表项中是否存在值。如果是,则删除它,例如 Lin。 这里c(json array)的值是:[{"Name":"Name1","URL":"http://www.name1.com"},{"Name":"Name2","URL":"http://www.name2.com"}]

` entry.AllLinks 不在这里过滤数据。AllLinks 在 entry.AllLinks 中未定义。请帮助

【问题讨论】:

标签: javascript jquery json ajax


【解决方案1】:

使用Array.findIndex() 在数组中找到所需的值,并使用Array.splice() 方法删除该对象。

【讨论】:

  • 即使这给出了未定义的值,objectFound 是 -1 var elementPos = c.map(function(x) {return x.Name; }).indexOf('Name1'); var objectFound =c[elementPos];警报(发现对象);
  • 即使这不起作用并且返回-1 function isFound(element) { return (element === "Name1"); } var j=c.findIndex(isFound);警报(j);
猜你喜欢
  • 2021-11-07
  • 1970-01-01
  • 2011-07-22
  • 2018-01-25
  • 2014-09-06
  • 2020-01-20
  • 2022-10-14
  • 1970-01-01
  • 2020-06-12
相关资源
最近更新 更多