gpt4 book ai didi

javascript - 基于字符串变量访问嵌套的javascript对象

转载 作者:行者123 更新时间:2023-11-30 14:03:20 24 4
gpt4 key购买 nike

我正在尝试创建一个 javascript 对象,它可以让我轻松地检查某本书中有多少章以及某章中有多少节经文。

我的计划是为对象建立这样的结构:

const amounts = {
book: {
bookNumber: 1,
bookChapters: 50,
chapter:
{
chapterNumber: 1,
versesInChapter: 31
},

chapter:
{
chapterNumber: 2,
versesInChapter: 25
}
},

book: {
bookNumber: 2,
bookChapters: 40,
chapter:
{
chapterNumber: 1,
versesInChapter: 26
},

chapter:
{
chapterNumber: 2,
versesInChapter: 22
}
}

}

如何根据变量值访问这种结构的嵌套值?例如,我可能有一个 var bookNum = 2 和 var chapterNum = 2,我的目标是获取第 2 本书第 2 章中的经文数量。我将如何编写这样的查询?

编辑:根据评论,我的对象结构也很糟糕,所以我还要求指出正确的结构,使我能够有效地访问经文的数量。

最佳答案

您可以重写您的 var 金额,如下所示,这将有助于操作

const books = [
{
bookNumber: 1,
bookChapters: 50,
chapter:[
{
chapterNumber: 1,
versesInChapter: 31
},
{
chapterNumber: 2,
versesInChapter: 25
}
],
}

{
bookNumber: 2,
bookChapters: 40,
chapter:[
{
chapterNumber: 1,
versesInChapter: 26
},

{
chapterNumber: 2,
versesInChapter: 22
}
]
}

]

const books = [{
bookNumber: 1,
bookChapters: 50,
chapter: [{
chapterNumber: 1,
versesInChapter: 31
},
{
chapterNumber: 2,
versesInChapter: 25
}
],
},

{
bookNumber: 2,
bookChapters: 40,
chapter: [{
chapterNumber: 1,
versesInChapter: 26
},

{
chapterNumber: 2,
versesInChapter: 22
}
]
}

]

var serach = books.filter(function(book) {
//console.log("books",book);
return book.bookNumber == 1;
})[0];
console.log("Searched book!", serach)

//And for desired result you can use forEach and filter
var num = 2,
chap = 1,
found_chapter;

books.forEach(function(book) {
if (book.bookNumber == num) { //found the book
console.log("found book", book);
found_chapter = book.chapter.filter(function(chapter) {
return chapter.chapterNumber == chap; //found chapter WRT found book
})[0]

}
});
console.log("found chapter-", found_chapter, "--found verse", found_chapter.versesInChapter)

正如上面的代码片段,您可以过滤掉您的搜索数据,并可以轻松地再次循环以找到所需的结果

希望对你有帮助!

关于javascript - 基于字符串变量访问嵌套的javascript对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55897367/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com