我有这个JSON文件
def power(a, b):
if b == 0:
return 1;
return a * power(a, b - 1);
我想在通知数组中获取对象,但不知道该怎么做
例如: 有没有一种方法可以通过输入_id完成此功能:4ds4d654sd65d7zW45 我想得到这个
{
"_id": "GgCRguT8Ky8e4zxqF",
"services": {
"notifications": [
{
"_id": "5hqPb76VhiwJ7Y86q5",
"work": true,
"maried": true
},
{
"_id": "4ds4d654sd65d7zW45",
"work": false,
"married": true
}
],
"profile": {
"name": "Janis"
}
}
}
无法弄清楚如何通过输入ID来访问通知并获得我想要的东西
能帮我吗?
答案 0 :(得分:1)
您可以在函数内使用Array.find()
:
使用ES6
var obj = {
"_id": "GgCRguT8Ky8e4zxqF",
"services": {
"notifications": [{
"_id": "5hqPb76VhiwJ7Y86q5",
"work": true,
"maried": true
},
{
"_id": "4ds4d654sd65d7zW45",
"work": false,
"married": true
}
],
"profile": {
"name": "Janis"
}
}
}
function findObj(id) {
return obj.services.notifications.find(({_id}) => _id === id);
}
console.log(findObj('4ds4d654sd65d7zW45'));
使用普通功能(适用于较旧的浏览器和IE)
var obj = {
"_id": "GgCRguT8Ky8e4zxqF",
"services": {
"notifications": [{
"_id": "5hqPb76VhiwJ7Y86q5",
"work": true,
"maried": true
},
{
"_id": "4ds4d654sd65d7zW45",
"work": false,
"married": true
}
],
"profile": {
"name": "Janis"
}
}
}
function findObj(id) {
return obj.services.notifications.find(function(obj){
return obj._id === id;
});
}
console.log(findObj('4ds4d654sd65d7zW45'));
答案 1 :(得分:0)
是的。您可以使用Array.prototype.find
方法。
const json = {
"_id": "GgCRguT8Ky8e4zxqF",
"services": {
"notifications": [
{
"_id": "5hqPb76VhiwJ7Y86q5",
"work": true,
"maried": true
},
{
"_id": "4ds4d654sd65d7zW45",
"work": false,
"married": true
}
],
"profile": {
"name": "Janis"
}
}
};
function getNotificationById(json, id) {
return json.services.notifications.find(n => n._id === id);
}
getNotificationById(json, '4ds4d654sd65d7zW45');
答案 2 :(得分:0)
您可以为此使用filter
的{{1}}功能。
Array