我有一个如下的JSON数组
[{"Id": 1,"name":"Test1"},
{"Id": 2,"name":"Test2"},
{"Id": 3,"name":"Test2"}]
我想通过angularJS获得等于2(Id = 2)的ID的名称。我是angularjs的新手。
答案 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;
}
是您要搜索的数组
在您的情况下,array
为key
,
'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。