从JSON数组中检索与键相关的特定值

时间:2019-04-10 08:04:03

标签: javascript

我有一个如下的JSON数组

[{"Id": 1,"name":"Test1"}, 
 {"Id": 2,"name":"Test2"},
{"Id": 3,"name":"Test2"}]

我想通过angularJS获得等于2(Id = 2)的ID的名称。我是angularjs的新手。

5 个答案:

答案 0 :(得分:1)

Array.find可能是您需要的:

> arr.find(e => e.Id === 2)

{ Id: 2, name: 'Test2' }

答案 1 :(得分:1)

尝试以下代码:

var jsonArray = [{"Id": 1,"name":"Test1"}, 
 {"Id": 2,"name":"Test2"},
{"Id": 3,"name":"Test2"}];


var name = Object.keys(jsonArray).find(e => {
if(jsonArray[e].Id == 2)
{
   console.log(jsonArray[e].name);
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

答案 2 :(得分:0)

这不是最漂亮的方法,但这有效

{{email.Notification.Subject || '(No Subject)'}}

function findObjectByKey(array, key, value) { console.log(array); for (let i = 0; i < array.length; i++) { console.log("looking for:", i); if (array[i] !== undefined && array[i][key] === value) { console.log("found at:", i); return i; } } return null; } 是您要搜索的数组 在您的情况下,arraykey'id'将是value或您正在寻找的任何东西

它返回对象在数组中的索引,但可以很容易地修改以返回如下名称:

2

我知道可能有一种更有效的方法,但这是我首先想到的

答案 3 :(得分:0)

假设您具有以下数组:

var arr = [{"Id": 1,"name":"Test1"}, 
           {"Id": 2,"name":"Test2"},
           {"Id": 3,"name":"Test2"}];

您始终可以通过数组使用forEach:

arr.forEach((a) => {if(a.Id == 2) console.log(a.name)});

答案 4 :(得分:0)

尝试以下代码,

let userArr = [{"Id": 1,"name":"Test1"}, 
              {"Id": 2,"name":"Test2"},
              {"Id": 3,"name":"Test2"}];

let userId = 2;

let item = userArr.find(e => {
     return e.Id === userId;
});

console.log(item); 

您还可以使用过滤器JS Filter