我正在尝试返回comments_text
其中具有匹配键的对象findKey
。
const findKey = "-MkeQEa2sgCho_ijk7TO"
const posts = [
0:{
comment: false,
comments_text: {
0: {
commenter_comment: "test1",
commenter_handle: "LEOPARD1",
commenter_uid: "ErGGzFxr4oPjWCEAPuNpdTdzPu63",
key: "-MkeQEa2sgCho_ijk7TO"
},
1: {
commenter_comment: "test2",
commenter_handle: "LEOPARD1",
commenter_uid: "ErGGzFxr4oPjWCEAPuNpdTdzPu63",
key: "-MkeQM4yD95PSEPfAj4v"
}
},
handle: "username1",
key: "-MkePAHv8kux6INOSCji",
title: "Hello"
}
]
例如,在这种情况下,由于findKey
是“-MkeQEa2sgCho_ijk7TO”,因此将返回:
{
commenter_comment: "test1",
commenter_handle: "LEOPARD1",
commenter_uid: "ErGGzFxr4oPjWCEAPuNpdTdzPu63",
key: "-MkeQEa2sgCho_ijk7TO"
}
我尝试了以下...
const returnMatchingObject = posts.comments_text.find(object=> object.key === findKey);
但是,我收到一条错误消息“无法读取未定义的属性(正在读取‘查找’)”
我觉得我错误地访问了对象。我该如何改进?感谢您的审查和任何帮助。
与其他答案类似,遍历posts
数组以查找匹配的嵌套comments_text
对象属性。不同之处在于它在第一个找到的匹配项时跳出循环,并且不需要该post.comments_text
属性首先是一个数组。
let item;
for (const post of posts) {
item = Object.values(post.comments_text).find(
(comment) => comment.key === findKey
);
if (item) {
break;
}
}
const findKey = "-MkeQEa2sgCho_ijk7TO";
const posts = [
{
comment: false,
comments_text: {
0: {
commenter_comment: "test1",
commenter_handle: "LEOPARD1",
commenter_uid: "ErGGzFxr4oPjWCEAPuNpdTdzPu63",
key: "-MkeQEa2sgCho_ijk7TO"
},
1: {
commenter_comment: "test2",
commenter_handle: "LEOPARD1",
commenter_uid: "ErGGzFxr4oPjWCEAPuNpdTdzPu63",
key: "-MkeQM4yD95PSEPfAj4v"
}
},
handle: "username1",
key: "-MkePAHv8kux6INOSCji",
title: "Hello"
}
];
let item;
for (const post of posts) {
item = Object.values(post.comments_text).find(
(comment) => comment.key === findKey
);
if (item) {
break;
}
}
console.log(item);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句