2017-08-17 64 views
-2

在以下代码中,我无法过滤entry.AllLinks。检查从ajax响应提取的对象的javascript数组中是否存在值并将其删除

的代码如下:

$.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'); 
    } 
}); 

}

它不会过滤并且当我在entry.AllLinks悬停光标移到AllLinks它是未定义的。 值项的来临为:

[{"AllLinks":"Link9","LinkURL":"http://www.Link9.com"},{"AllLinks":"Link6","LinkURL":"http://www.Link6.com"}] 
+0

你尝试过什么?你卡在哪里? – Cruiser

+0

我想我需要拆分数组并检查密钥是否匹配。不知道如何做到这一点 –

+0

如何访问Link9和Link6之类的值,并使其索引从数组中删除? –

回答

3

您可以使用Array.filter到滤镜阵列为每values您需要。

let arr = [{"AllLinks":"Link9","LinkURL":"http://www.Link9.com"},{"AllLinks":"Link6","LinkURL":"http://www.Link6.com"}] ; 
 

 
arr = arr.filter(function(elem) { 
 
    return elem.AllLinks !== 'Link9'; 
 
}); 
 

 
console.log(arr);

+0

如果代码段正在运行,但它不适用于我的代码,则该代码正确 –

+0

如果你看我的回答'arr'是阵列。 'filter'只在'array'中出现。 'c = data.d.results [0] .AllLinks;' - 这里你从响应中提取'AllLinks'。在完成这个操作后,你应该''console.log(c)'来检查'c'是否包含你需要过滤或不需要的数组。 –

+0

没有它不是一个数组。如果不是数组,如何进行?任何想法? –

相关问题