使用 observable 从服务器获取 map() 和 filter() 数据

毗湿奴

我有一个 Angular 服务,它发送一个数据服务调用并返回一个包含多层数据的对象数组。我希望能够过滤该数据并仅返回匹配的记录。

this.behaviourStore.state$ = {
  "todos": [
    { 
      "accountNo": "50190000009400",
      "vpainfo": [
        {
          "vpa": "log@bandhan"
        }
      ]
    },
    {
      "accountNo": "10180000025686",
      "vpainfo": []
    }
  ]
}

并尝试了以下方式,但收到错误消息, TypeError: Cannot read properties of undefined (reading 'vpainfo')

this.virtualAddressListObj = this.behaviourStore.state$.
   pipe(map(state => state.todos.filter((v: any) => (v.vpainfo.length !=0 && v.vpainfo[0].vpa !== null && v.vpainfo[0].vpa !== undefined))));
   
  this.virtualAddressListObj.subscribe(
    val => { console.log(JSON.stringify(val))}, //next callback
    error => { console.log(error) }, //error callback
    () => { console.log("Completed") } //complete callback
 )
安德烈斯2142

不确定您是否总是想要获取所有vpainfo属性,但是,我认为您可以为该过滤操作使用辅助函数:

this.behaviourStore.state$.pipe(
  map((response) => this.getPainfo(response['todos']))
 ).subscribe(
   (data) => console.log('my data:', data), // output: my data: ['log@bandhan']
   (error) => console.log('Error produced:', error),
   () => console.log('Finalized')
);

private getPainfo(dataArray: any[]) {
  const result = [];

  for (const element of dataArray) {
    const keys = Object.keys(element);

    for (const key of keys) {
      if (key !== 'vpainfo') { continue; }

      element[key].filter((e) => e?.vpa ? result.push(e.vpa) : '')
    }
  }

  return result;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用Ratchet从服务器发送和获取数据

在 React 服务器端渲染中使用 .dispatch 和箭头函数理解链式 .map 和 .filter

使用filter,reduce,add,map从多个词典中获取和评估数据

使用html和php从xampp sql服务器获取数据

我无法使用 reactjs 和 express 从我的服务器获取数据

使用URLSession从服务器获取数据

OpenLayers:从服务器获取Map,View,TileLayer和OSM

如何使用 Php 和 MSSQL 获取具有多个服务器名称的 mssql 中的所有数据

在带有map()的嵌套数据框中使用filter()(和其他dplyr函数)

使用 JavaScript .map() 和 .filter() 按 lang 搜索作者/书籍数据模块

如何使用Redux从服务器获取数据?

不使用 Log Appender 从 Kaa 服务器获取数据

使用异步数据获取的服务器端渲染

在 React 中使用 Fetch 从服务器获取数据

使用* ngFor循环从服务器获取的数据

使用 curl 定期从远程服务器获取数据

从服务器获取数据时在Android中使用Listview

使用python从msssql服务器获取数据

使用Reduce而不是链接Filter和Map

如何从DJANGO服务器获取和使用HTTPResponse消息

如何使用asyncio和multiprocess.map获取数据

在共享服务和组件之间使用 Observable 发出数据

Github-使用敏感数据在本地服务器和实时服务器之间同步网站文件

从服务器数据库中提取和使用数据的最佳方法?

使用Javascript和PHP在服务器上保存和检索数据

每隔一秒钟从Observable获取数据,使用“开始”和“停止”按钮

如何从iOS应用连接到后端服务器?如何读取,修改和获取数据到后端服务器?

使用python的传感器数据和命令传输的客户端-服务器协议

如何在本地服务器上向谷歌数据存储添加和获取数据?