繁体   English   中英

如何访问 js object 属性?

[英]how to access js object properties?

我不知道如何在 JS 中获取 object 属性。 我从 firebase 获取值,我想通过它的 id 过滤结果:

//id is from query params (selecting 1 item from view)
const snippet = snippets.filter(snips => {
        if(snips.id == id) return snips;
})

如果我在这些行之后 console.log,我得到这个:

在此处输入图像描述

const obj = snippet[0];        

因此,我尝试使用返回以下内容的snippet[0]来获取属性:

在此处输入图像描述

但是,如果我尝试获取以下属性:

console.log(obj['id']);
//console.log(obj.title); - tried this as well

它返回:

在此处输入图像描述

输入数据:

在此处输入图像描述

这不是 array::filter function 的工作方式。 它遍历数组,如果元素应在结果数组中返回,则回调返回 boolean true/false。

const snippet = snippets.filter(snips => snips.id == id)

问题

无法读取未定义的属性“标题”

这表示在尝试访问任何属性时snippet[0]当前未定义

snippet[0].title ,您的其他控制台日志中也不存在根title属性

解决方案

您的代码段(可能)是一个包含 1 个(或 0 个)元素的数组,因此为了访问嵌套在data属性中的title

snippet[0].data.title

如果数组为空或有一个没有data属性的元素,请使用可选的链接或保护子句来检查访问

snippet[0]?.data?.title

或者

snippet[0] && snippet[0].data && snippet[0].data.title

查看您要输入的内容,您需要先输入数据。

console.log(obj[0].data.content)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM