В основном просто используйте Object.keys
статический метод, чтобы получить массив ключей, присутствующих в объекте ответа. Если вы уверены, что всегда есть две записи, просто выберите одну, которая не Name
:
public getDayVal(data){
Object.keys(data).forEach((k) => {
if (k !== 'Name') return data[k];
})
}
Если вы не уверены, просто нажмите клавишу Regex
, чтобы определить, соответствует ли она:
public getDayVal(data){
let re = /^day[0-9]+$/;
Object.keys(data).forEach((k) => {
if (re.test(k)) return data[k];
})
}
затем в шаблоне используйте вышеуказанную вспомогательную функцию для извлечения изменяющегося ключа:
<td mat-cell *matCellDef="let col" class="align-left" > {{getDayVal(col)}} </td>
Важно
Я пропускаю все дополнительные, но в вашем случае необходимые проверки работоспособности, такие как проверка того, будет ли вспомогательный метод, наконец, что-либо возвращать, и что произойдет, если желаемый ключ dayXX
не найден. Вам решать с этим, теперь таблица просто не будет ничего отображать в столбце из-за undefined
возвращенного помощника формы.
И самое главное: измените модель данных, если вы за нее отвечаете. Кодирование информации в поле является просто основным недостатком дизайна. Что-то вроде:
interface DayIfc {
Name: string;
Day: number;
Shift: number;
}
Решит все ваши проблемы.