从数组中删除一个对象并返回结果

时间:2016-06-10 01:50:15

标签: javascript arrays object

我在数组中有一些对象:

var names = [
    { id:"101", name:"eric" },
    { id:"202", name:"john" },
    { id:"303", name:"zack" },
    { id:"404", name:"ron" }
];

我想删除其中一个对象。我只有一个数据来检查对象数组,即id = 202。最后,我想返回调整后的数组,如下所示:

[
    { id:"101", name:"eric" },
    { id:"303", name:"zack" },
    { id:"404", name:"ron" }
];

3 个答案:

答案 0 :(得分:4)

在javascript中,您可以使用Array.filter或Array.reject返回所需的对象数组。下面我演示了如何使用过滤器来实现这一目标。

function idNotTwoZeroTwo(eachObject){ return eachObject.id !== '202'};
names.filter(idNotTwoZeroTwo) // gives you same result

Array.filter是一个本机函数,它将获取现有数组并返回带有过滤值的新数组。它通过遍历数组中的每个项目并在每个项目上运行谓词/真值函数来实现此目的。如果一个项目通过真值测试,它将被推入新数组。迭代完成后,filter将返回一个全新的数组,其中只包含通过测试的值。

在上面的示例中,谓词函数是我们传递给过滤器的匿名函数。您还可以传入之前声明过的函数。

   @echo off

   setlocal EnableExtensions

   title Algoritmos 1 - SUPER TOOL!

   color a

   :Menu

   <menu with option C and J>

   set /p mode=
   if %mode%==C (
    goto MenuC 
   ) else if %menu%==J (
    goto MenuJ
   ) else if NOT %whatapp%==e (
    echo Menu inválido!
    pause
   )

   :MenuC

   <code that works>

   goto MenuC

   :MenuJ

   <code that works>

   pause
   goto MenuJ

此外,您实际上并未在示例中表示正确的JSON。如果你有时间通过​​http://www.w3schools.com/json/default.asp的快速教程进行整理。

还有一件事。如果您将来要查看是否有适当的JSON,只需转到http://jsonlint.com/并复制您的代码。它会告诉您,您的代码是否正确JSON。它甚至会告诉你到底出了什么问题。

这是我的第一个答案,所以我很抱歉,如果我没有完全回答你的问题。希望它有所帮助。!

答案 1 :(得分:1)

使用filter

var res = names.filter(function(obj) {
    return obj.id !== "202";
});

console.log(res);

答案 2 :(得分:0)

你可以使用下划线js非常简单

var names = [
    { id:"101", name:"eric" },
    { id:"202", name:"john" },
    { id:"303", name:"zack" },
    { id:"404", name:"ron" }
];

console.log(_.reject(names, function(num){ return num.id == "202"; }))

包括库下划线