Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何访问js对象属性?_Javascript_Reactjs - Fatal编程技术网

Javascript 如何访问js对象属性?

Javascript 如何访问js对象属性?,javascript,reactjs,Javascript,Reactjs,我不知道如何在JS中获取对象属性。我正在从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,我会得到以下结果: 因此,我尝试使用snippet[0]获取属性,它返回

我不知道如何在JS中获取对象属性。我正在从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,我会得到以下结果:

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

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

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

输入数据:


这不是array::filter函数的工作方式。它迭代数组,如果元素应该在结果数组中返回,则回调函数返回布尔值true/false

const snippet = snippets.filter(snips => snips.id == id)
问题 无法读取未定义的属性“title”

这意味着在尝试访问任何属性时,
代码段[0]
当前未定义

代码段[0]。title
,根
title
属性也不存在于其他控制台日志中

解决方案 您的代码段(可能)是由1(或0)个元素组成的数组,因此为了访问嵌套在
数据
属性中的
标题

snippet[0].data.title
如果数组为空或有一个元素没有
数据
属性,请使用可选的chaining或guard子句检查访问

snippet[0]?.data?.title


查看您的请求,您需要首先输入数据


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

请提供一个。您可能会遇到异步代码问题。另外,请阅读如何正确使用
Array#filter
。获得了相同的输出。@silent\u coder14您何时尝试在代码中访问它?有时,在控制台日志实际打印时,对象会被数据和属性“定义”/“填充”。您是否可以更新您的问题以包含一个代码示例,即对象访问的使用方式和位置?我认为它现在可以使用:console.log(obj?.data?.title);非常感谢。这很让人困惑,因为我最初得到的是值,但过了一段时间后就丢失了。请您添加更多代码,以便我可以在编辑器中尝试。thxthank you@Manuel,它现在似乎在工作:console.log(obj?.data?.title);
snippet[0]?.data?.title
snippet[0] && snippet[0].data && snippet[0].data.title