Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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 返回特定对象';s属性值RXJS.map和.filter_Javascript_Arrays_Object_Rxjs - Fatal编程技术网

Javascript 返回特定对象';s属性值RXJS.map和.filter

Javascript 返回特定对象';s属性值RXJS.map和.filter,javascript,arrays,object,rxjs,Javascript,Arrays,Object,Rxjs,我有一个对象数组,每个对象都有相同的两个参数:contentId和data [ { contentId: 12343, data: 'a bunch of data' }, ... ] 我的RXJS observable使用下面的代码返回对象 this.$bcc = this.bccService.getBcc().pipe( map(data => data.find(obj => obj.contentId == 12343)

我有一个对象数组,每个对象都有相同的两个参数:
contentId
data

[
    {
      contentId: 12343,
      data: 'a bunch of data'
    },
    ...
]
我的RXJS observable使用下面的代码返回对象

this.$bcc = this.bccService.getBcc().pipe(
  map(data => data.find(obj => obj.contentId == 12343)), // returns the matching object
  // map(data => data.find(obj => obj.contentId == 12343)['data']), // undefined
);

但是,如何才能最好地指定匹配对象的
数据
参数值?

或者
。语法
关键语法
应该可以使用:

data.find(item => item.contentId === 12343).data;
data.find(item => item.contentId === 12343)['data'];
我想没有关系,但不清楚为什么管道中有一个
map

const数据=[
{
contentId:12343,
数据:“一堆数据”
},
{
contentId:45678,
数据:“一堆数据”
},
]
log(data.find(item=>item.contentId==12343.data);

log(data.find(item=>item.contentId==12343)['data'])
Hey@chev谢谢,但正如我在问题中所描述的,这些返回未定义。关于地图,我正在将所选对象映射到可观察对象,因为我不需要整个有效载荷,只需要匹配的对象。。。并试图更深入地获取该对象的数据值。它们都返回未定义的值?你的问题是如何访问该财产。根据上面的数组和示例,它们实际上会生成数据属性。听起来问题与
管道
地图
有关。你能详细说明一下你在管道中使用的是什么库或者展示你自己的管道实现吗?map返回一个值,所以不清楚该数据是否被传递到你管道语句中的下一个操作符中。您能否将第二个运算符替换为与第一个运算符相同的运算符作为测试。所以他们都是代码>地图(Data=> Data .find(Obj= Obj.CordNeD==12343))< /代码> @ BenRacicot,请查看更新后的答案——您在第一个代码> MAP中重写<代码>数据< /代码>值,因此后续<代码> MAP>代码>必须考虑这一点。谢谢您的继续帮助。第一个贴图得到了我想要的正确对象。(第二个映射实际上只是一个不起作用的映射操作符的示例。)
map(data=>data.propertyInData)
不获取任何
propertyInData
的值。什么是
map
?您使用的是哪个库?在问题中澄清了我使用的是observables和RXJS
map
操作符。但是,
.find
是普通的JS。您是否应该在第一个
映射中使用
过滤器
(而不是
find
)?否则,第二个
映射将不会获得数组,但对象。。。或者将第二个管道参数更改为处理找到的对象而不是数组..我不清楚您的确切问题,但您是否看到了
pulk
?它允许您提取特定的嵌套属性。请看这里的文档:@DeborahK,每次都赢。拔毛似乎是这项工作的工具。如果你有空的话,你能用我的例子写一个答案吗?