Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/441.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 在';按键';_Javascript_Rxjs_Javascript Objects_Rxjs6_Rxjs Observables - Fatal编程技术网

Javascript 在';按键';

Javascript 在';按键';,javascript,rxjs,javascript-objects,rxjs6,rxjs-observables,Javascript,Rxjs,Javascript Objects,Rxjs6,Rxjs Observables,因为我正在使用此技术从SWAPI获取虚拟数据 const httpStarwars$ = createHttpObservables('https://swapi.dev/api/films/'); fromEvent<any>(this.sTxt.nativeElement,'keypress').pipe( map(event => event.target.value), debounceTime(400), distinctUntilChang

因为我正在使用此技术从SWAPI获取虚拟数据

const httpStarwars$ = createHttpObservables('https://swapi.dev/api/films/');    
fromEvent<any>(this.sTxt.nativeElement,'keypress').pipe(
   map(event => event.target.value),
   debounceTime(400),
   distinctUntilChanged(),
   switchMap(val => httpStarwars$.pipe(
      map(res => Object.values(res["results"]))
   ))
).subscribe(courses => console.log(courses));
现在,我想使用过滤器过滤下面上述数据的结果。

map(res => Object.values(res["results"]))
我要过滤的是
标题
。到目前为止,我使用的是下面这个技巧。

map(res => Object.values(res["results"]).filter(j => j["title"] == res))
它给了我这样的空数组
[]

更新1:

更新2:

更新1

我编辑我的答案以使用打字脚本


我认为您要做的只是按标题过滤您的回复,所以您可以这样做:

界面电影{
标题:字符串;
插曲编号:编号;
}
常数res={};
res[“结果”]={
0:{标题:“新希望”,插曲编号:4},
1:{标题:“帝国反击”,第5集,
2:{标题:“绝地归来”,第6集,
3:{标题:“幽灵的威胁”,第1集},
4:{标题:“克隆人的攻击”,第2集}
}
const result=Object.values(res[“results”]).filter((movie:movie)=>movie.title==“新希望”)

console.log(result)
这个
j[“title”]==res
毫无意义。你想如何过滤?根据什么条件?@Bitman我想筛选“title”如何筛选对象值。@Bitman来自此JSON对象。。{标题:“新希望”,第4集,开场白:“这是一个内战时期。↵叛军太空船↵人民与恢复↵《银河系的自由…》,导演:“乔治·卢卡斯”,制片人:“加里·库尔茨,里克·麦卡勒姆”,…}
j[“title”]==res
在这里永远不会是真的(很可能),因为
res
是一个数组,而title是一个字符串。在title上会出现类似这样的错误。类型“unknown”上不存在属性“title”。Object.Value(res[“results”])的返回是什么?这应该包含一个对象数组…我已经更新了我的问题,它返回的结果与您在回答中所做的相同。接口Movie{title:string;eposion_id:number;}并像这样使用:const result=Object.values(res[“results”]).filter((Movie:Movie)=>Movie.title==“新希望”)发现了问题。我像这样使用固定值。。它过滤出了“新希望”。现在,当我使用switchMap(val=>httpStarwars$.pipe(map(res=>{console.log(val);console.log(Object.values(res[“results”]);const result=Object.values(res[“results”])。过滤器((movie:movie=>movie.title==val)返回结果;)它给出第一个空值,然后是console.log中的值
map(res => Object.values(res["results"]).filter(j => j["title"] == res))