【发布时间】:2018-04-16 19:35:05
【问题描述】:
我有一个“不对称”结构的对象数组,其中键不相同并且有一些嵌套对象。 我需要遍历这个:
obj = [{
"d14042018": {
"date": "14-04-2018",
"value": 5
},
"d02042018": {
"date": "02-04-2018",
"value": 10
},
"name": "my name"
},
{
"d14042018": {
"date": "14-04-2018",
"value": 15
},
"d02042018": {
"date": "02-04-2018",
"value": 25
},
"name": "my second name"
}]
我需要的是返回这样的结构
第一行 = 我的名字 5 10
第二行 = 我的第二个名字 15 25
我在自定义管道中尝试了 for...
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
name: 'keys'
})
export class KeysPipe implements PipeTransform {
transform(value: any, args?: any): any {
let keys: string;
if (value) {
for (var prop in value) {
if(typeof value[prop] != 'object') {
keys = value[prop];
} else {
for (var subprop in prop) {
keys = prop.subprop;
}
}
}
}
return keys;
}
}
但是 id 不起作用...
有人可以帮忙吗?
【问题讨论】:
-
键名始终存在,但您猜的日期可能会改变...所以我不知道日期键的名称
-
如此糟糕的设计:无论如何,如果您使用
Object.keys()捕获键(无论值如何),那么您就有了可以迭代的东西。如果结构保持不变,您可以使用键索引来收集value和下一个键来获取第二个值,并使用第三个键(名称)来获取名称。
标签: javascript angular pipe for-in-loop nest-nested-object