【发布时间】:2022-01-10 16:36:15
【问题描述】:
我需要你的帮助;我有一个对象数组(称为 bookArr,如下所示),如下所示。
bookArr 是:
[
{part: 'Text', value: 'Geralt is a witcher, a stronger and more resilient individual than any human, who earns his living by killing those creatures that dismay even the most daring: demons, orcs, evil elves.' , id: 1},
{part: 'Author', value: 'Andrzej Sapkowski', id: 2},
{part: 'Image', value: 'book_imgrt5432tp.jpg', id: 3},
{part: 'Title', value: "The guardian of the innocents. The Witcher. Vol. 1", id: 4}
]
有时,例如,作者不知名;所以一旦我为每个部分做了一个循环,我想知道作者(总是考虑到部分)是否丢失,因为我在 if 条件下需要它。
所以我做了如下:
if (Object.entries(results)[x][1].part == "Author") {
document.getElementById("auth").innerHTML = Object.entries(results)[x][1].value;
} else if (Object.entries(results)[x][1].part == "") {
do this....
}
我尝试使用Object.entries(results)[x][1].part == "",但它不起作用。
我该如何解决我的问题?
编辑
如果缺少Author,则缺少Author对应的整行,因此不存在
{1: {…}, 2: {…}, 3: {…}, 4: {…}}
1: {part: 'Text', value: 'Geralt is a witcher, a stronger and more resilient individual than any human, who earns his living by killing those creatures that dismay even the most daring: demons, orcs, evil elves.' , id: 1},
2: {part: 'Author', value: 'Andrzej Sapkowski', id: 2},
3:{part: 'Image', value: 'book_imgrt5432tp.jpg', id: 3},
4: {part: 'Title', value: "The guardian of the innocents. The Witcher. Vol. 1", id: 4}
[[Prototype]]: Object
完整代码:(正如我所说,作者并不总是存在于数组中(因此最后一条指令源自它))
while (x < Object.entries(results).length) {
if (Object.entries(results)[x][1].part == "Title"){
document.getElementById("title").innerHTML = Object.entries(results)[x][1].value;
}
else if (Object.entries(results)[x][1].part == "Text"){
document.getElementById("txt1").innerHTML = Object.entries(results)[x][1].value;
}
else if (Object.entries(results)[x][1].part == "Image"){
document.getElementById("img").src = Object.entries(results)[x][1].value;
}
else if (Object.entries(results)[x][1].part == "Author"){
document.getElementById("auth").innerHTML = Object.entries(results)[x][1].value;;
}
else if(!Object.entries(results)[x][1].some(item => item.part == 'Author')) {
console.log('yes')
document.getElementById("auth").style.display="none";
}
x++;
}
【问题讨论】:
-
欢迎来到 Stack Overflow!如果您还没有,请使用tour(您将获得徽章!),四处看看,并通读help center,尤其是How do I ask a good question? 我还推荐Jon Skeet 的Writing the Perfect Question 和Question Checklist .
-
恐怕问题中的信息太零碎,我们无法提供帮助。您谈论的是数组,但随后您使用的是
Object.entries,它适用于非数组对象(尽管它适用于数组,因为数组也是对象)。请使用 minimal reproducible example 来更新您的问题,以展示问题,最好是使用 Stack Snippets([<>]工具栏按钮)的 runnable 问题; here's how to do one. -
@T.J.Crowder 对象数组
-
我知道,但同样,你不会使用
Object.entries。我们需要更多的上下文。你是按条目做的吗?还是整个阵列只用一次?还是……? -
为什么会这样?与其他字段一起正常工作。我不明白为什么 Object.entries (results) [x] [1] .part == "" (just put "") 不起作用
标签: javascript loops