我的数据结构:
const obj = {
"data": [
{
"id": 1,
"name": "Genre 1",
"books": [
{ "id": 1, "name": "book 1" },
{ "id": 2, "name": "book 2" },
{ "id": 3, "name": "book 3" }
]
},
{
"id": 2,
"name": "Genre 2",
"books": [
{ "id": 1, "name": "book 1" },
{ "id": 2, "name": "book 2" },
{ "id": 3, "name": "book 3" }
]
},
{
"id": 3,
"name": "Genre 3",
"books": [
{ "id": 1, "name": "book 1" },
{ "id": 2, "name": "book 2" },
{ "id": 3, "name": "book 3" }
]
}
]
};
如果给出了id,我如何将适当的书籍数组分配给1 常量?
答案 0 :(得分:4)
您可以使用.find()
找到正确的对象,然后访问books
数组。
const books = data.find(d => d.id === id).books;
这假设data
是一个对象数组。如果您确实拥有一个带有“数据”键的对象,那么它将更接近于此:
const obj = {
"data": [
{
"id": 1,
"name": "Genre 1",
"books": [
{ "id": 1, "name": "book 1" },
{ "id": 2, "name": "book 2" },
{ "id": 3, "name": "book 3" }
]
},
{
"id": 2,
"name": "Genre 2",
"books": [
{ "id": 1, "name": "book 1" },
{ "id": 2, "name": "book 2" },
{ "id": 3, "name": "book 3" }
]
},
{
"id": 3,
"name": "Genre 3",
"books": [
{ "id": 1, "name": "book 1" },
{ "id": 2, "name": "book 2" },
{ "id": 3, "name": "book 3" }
]
}
]};
const books = obj.data.find(d => d.id === id).books;
.find()
的答案 1 :(得分:0)
如何查找具有特定ID的图书的基本示例
const id_you_are_looking_for = 1;
const answer = obj.data.find(x => x.id === id_you_are_looking_for).books;
你可以用它来制作一个功能......
function returnBooksById(obj, id) {
return obj.data.find(x => x.id === id).books;
}
或使用箭头功能......
const returnBooksById = (obj, id) => obj.data.find(x => x.id === id).books;
或者,如果你使用像Lodash这样的库和ES6,那就像这样简单......
import { find } from 'lodash';
const id = 1
const books = find(obj, { id }).books;
答案 2 :(得分:0)
如何查找具有特定 ID 的图书的基本示例
const result = data.books.filter(x => x.id == 1);
console.log(result);