Javascript 创建包含从父组件发送的对象值的单个数组

Javascript 创建包含从父组件发送的对象值的单个数组,javascript,arrays,angular,object,emit,Javascript,Arrays,Angular,Object,Emit,嗨,我需要创建一个包含从父组件发送的对象值的角度数组 从父控制台发送的对象。日志('object',o): 将其传递给子组件时使用: this.dataSend.emit(object.designator); 在子系统中接收数据: if (this.dataSend) { this.dataSend .subscribe(data => { console.log(data); }); } console.log(data): EPTR130

嗨,我需要创建一个包含从父组件发送的对象值的角度数组

从父控制台发送的对象。日志('object',o):

将其传递给子组件时使用:

this.dataSend.emit(object.designator);
在子系统中接收数据:

if (this.dataSend) {
    this.dataSend
    .subscribe(data => {
        console.log(data);
    });
} 

console.log(data):
EPTR130B
EPTR130A
EPTR25
...etc
我应该如何接收像[EPTR130B,EPTR130A,EPTR25…]这样的数组?地图?推

编辑: 我做了一些更改,并将数据作为对象传递给具有
this.dataSend.emit({data})的子对象
并收到:

{data: Array(63)}
data: Array(63)
0: {type: "ADHOC", designator: "UAV1", availabilities: Array(1), info: Array(2), geometry: {…}}
1: {type: "TRA", designator: "EPTR130B", availabilities: Array(1), info: Array(2), geometry: {…}}
2: {type: "TRA", designator: "EPTR130A", availabilities: Array(1), info: Array(2), geometry: {…}} ...etc

您应该能够使用Rxjs的
map
和数组的
map
来完成

尝试:

===============================编辑==============================
使用
点击
操作符进行调试,您可以卸下窗帘,并查看在该时间点上观察到的情况。

我已经尝试了几件事情,我不知道它对数组和对象的操作方式是否干净,但它可以工作:

.subscribe(data => {
    console.log(data);
    let arr: any[]  = [];
    Object.keys(data).forEach(function(item) {
        for(let i=0; i<data[item].length; i++){
            arr.push(data[item][i].designator);
        }
        console.log(arr);
    });
});
.subscribe(数据=>{
控制台日志(数据);
设arr:any[]=[];
Object.key(数据).forEach(函数(项){

对于(让我=0;我可能有用:我一直在尝试这样做,没有结果。这样我接收dataArray.map不是一个函数谢谢,但是它给了我日志:
dataArray before filter:[对象对象]
不幸的是,没有,
console.log('check',data);
甚至连“check”字符串都没有显示在控制台中。。
import { filter, map, tap } from 'rxjs/operators'
......
this.dataSend
    .pipe(
       tap((dataArray: any) => console.log(`dataArray before filter: ${dataArray}`)),
       // allow emissions where dataArray is truthy and it has length > 0
       filter((dataArray: any) => !!dataArray && dataArray.length),
       tap((dataArray: any) => console.log(`dataArray after filter: ${dataArray}`)),
       map((dataArray: any) => dataArray.map(data => data.designation)),
     )
    .subscribe(data => {
        console.log(data);
    });
.subscribe(data => {
    console.log(data);
    let arr: any[]  = [];
    Object.keys(data).forEach(function(item) {
        for(let i=0; i<data[item].length; i++){
            arr.push(data[item][i].designator);
        }
        console.log(arr);
    });
});