我有一个服务冰从后端拉出一个数组,我需要根据ID从数组中获取一个项目,我该如何在Angular中执行此操作?
我正在寻找如何专门使用angulars管道操作员。如果没有正确完成,过滤器往往只是停止工作而不会抛出错误。我可以获取行信息,但我无法定位我得到的属性
"Cannot read property 'id' of undefined"
答案 0 :(得分:1)
angulars pipeable operator
我不完全确定你是什么意思的角度管道操作员。你的问题中有rxjs-pipeable-operators标签,所以我希望你的意思是rxjs运算符。
所以我假设你真正想做什么。如果我不理解,请发表评论。
您有一个从数组中返回Observable的服务。像这样:
function getMyData(): Observable<any[]> {
return Observable.create(observer => {
observer.next([
{ name: 'value 1', id: 1 },
{ name: 'value 2', id: 2 },
{ name: 'value 3', id: 3 }
]);
});
}
如果要修改此可观察流中的值,则不能直接在流上使用过滤器或查找。您收到的值是完整数组,因此对数组对象而不是单个项执行查找操作。你想要做的是映射结果值并在映射函数中过滤它。
getMyData()
.map((theArray: any[]) => theArray.find(item => item.id === 2))
答案 1 :(得分:0)
我需要根据ID
从数组中获取单个项目
尝试使用Array.find()
let data = yourArray.find(x => x.id == "en-gb");
或尝试使用array().filter().shift()
请仔细阅读以下讨论
Difference between find() and filter().shift() on javascript
答案 2 :(得分:0)
docker run -it -p 80:8080 --label com.docker.ucp.mesh.http=external_route=my1.example.com,internal_port=80 container_1
答案 3 :(得分:0)
表示数组中的单个项目。
.url