从JavaScript数组中删除对象?

Mes*_*ssi 28 javascript arrays object

可能重复:
从javascript数组中删除特定元素?

具体来说,我有一个数组如下:

var arr = [
    {url: 'link 1'},
    {url: 'link 2'},
    {url: 'link 3'}
];
Run Code Online (Sandbox Code Playgroud)

现在,您要删除有价值的元素URL"链接2",并在删除唯一的数组后,如下所示:

arr = [
    {url: 'link 1'},
    {url: 'link 3'}
];
Run Code Online (Sandbox Code Playgroud)

那么谁可以帮我解决这个问题呢?非常感谢

xda*_*azz 26

你可以做一个过滤器.

var arr = [
  {url: "link 1"},
  {url: "link 2"},
  {url: "link 3"}
];

arr = arr.filter(function(el){
  return el.url !== "link 2";
});
Run Code Online (Sandbox Code Playgroud)

PS: Array.filter方法在JavaScript 1.6中实现,大多数现代浏览器都支持,如果支持旧浏览器,您可以编写自己的浏览器.

  • 请包括要求......不是每个人都很幸运有这样的功能(没有垫片). (3认同)

tjs*_*nce 4

使用 splice 函数删除数组中的元素:

arr.splice(1, 1);
Run Code Online (Sandbox Code Playgroud)

如果您想在不知道基于 elements 属性的索引的情况下删除数组的元素,则必须迭代数组和每个元素的每个属性:

for(var a = 0; a < arr.length; a++) {
    for(var b in arr[a]) {
        if(arr[a][b] === 'link 2') {
            arr.splice(a, 1);
            a--;
            break;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)