我正在尝试使用 JavaScript 从对象数组中提取特定的 JSON 对象。这是我的 JSON:
"Awards": [
{
"Award1": {
"title": "Award1 Title",
"recipient": "John Doe",
"description": "Blah Blah Blah"
}
},
{
"Award2": {
"title": "Award2 Title",
"recipient": "Tom White",
"description": "Blah Blah Blah"
}
},
{
"Award3": {
"title": "Award3 Title",
"recipient": "Will Biggs",
"description": "Blah Blah Blah"
}
}
]
我想要做的是创建一个函数,它接受数据和 id,在数组中查找对象并返回整个对象。例如,如果我搜索 Award1,我希望它返回:
var obj = {
"title": "Award1 Title",
"recipient": "John Doe",
"description": "Blah Blah Blah"
}
然后我就可以像这样访问数据:
obj.recipient // Which would return John Doe
想法?
最佳答案
查找包含属性 key=Award1 的第一个对象并返回它。
const findKey = (list, key)=>(list.find(obj=>obj[key])||{})[key]
data = {
"Awards": [
{
"Award1": {
"title": "Award1 Title",
"recipient": "John Doe",
"description": "Blah Blah Blah"
}
},
{
"Award2": {
"title": "Award2 Title",
"recipient": "Tom White",
"description": "Blah Blah Blah"
}
},
{
"Award3": {
"title": "Award3 Title",
"recipient": "Will Biggs",
"description": "Blah Blah Blah"
}
}
]
}
console.log(data.Awards.find(obj=>obj["Award1"]))
let key = "Award1"
console.log(data.Awards.find(obj=>obj[key])[key].title)
console.log(
findKey(data.Awards,'Award1')
)
console.log(
findKey(data.Awards,'Award2')
)
console.log(
findKey(data.Awards,'Award3')
)
关于javascript - 通过 ID 从数组中获取特定 JSON 对象并返回 JSON 对象 (Javascript/JQuery),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62100491/