У меня есть массив объектов с асимметричной структурой, где ключи не совпадают и есть какой-то вложенный объект. Мне нужен цикл через это:
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
, и следующий ключ, чтобы получить второе значение, и третий ключ (имя), чтобы получить имя. - person Randy Casburn   schedule 16.04.2018