在我的表中,我通过输出值来迭代各行。一旦没有值,我就会得到错误value is not iterable。我该如何解决这个错误呢?
我的代码:
if (null != data && data) {
data = data.map((item) => {
const value = item.deadlineEntityList;
delete item.deadlineEntityList;
const deadlines = [];
for (const deadlineEntity of value) { // Here is the Error
deadlines.push({
deadlineId: deadlineEntity.deadlineId,
period: deadlineEntity.deadlinePeriod,
value: deadlineEntity.value
});
}
return {...item, ...{ deadlines }};
});
const rows = [];
const salesAreaNames = _.uniq(data.map((d) => d.kagName)) as string[];
for (const n of salesAreaNames) {
const salesAreaData = data.find((d) => d.kagName === n);
if (salesAreaData && salesAreaData !== null) {
const row: any = { kagName: salesAreaData.kagName, values: {}, mandantKagId: salesAreaData.mandantKagId };
for (const deadline of salesAreaData.deadlines) {
row.values[deadline.period.toLowerCase()] = this.transformAmount(deadline.value);
}
rows.push(row);
}
}
this.data = rows;
}发布于 2021-05-07 21:07:08
你可以做到:
for (const deadlineEntity of (value ?? [])) { // Here is the Error
它将防止该值出现错误,因为如果它没有某个值,它将迭代[]
发布于 2021-05-07 21:58:40
试试这样的..。
const data = [];
if (null != data && data) {
data = data.map((item) => {
let { deadlineEntityList, ...itemWithoutDeadlineEntityList } = item;
deadlineEntityList = deadlineEntityList || [];
const deadlines = deadlineEntityList.map((deadlineEntity) => {
return {
deadlineId: deadlineEntity.deadlineId,
period: deadlineEntity.deadlinePeriod,
value: deadlineEntity.value,
};
});
return { ...itemWithoutDeadlineEntityList, deadlines };
});
const rows = [];
const salesAreaNames = _.uniq(data.map((d) => d.kagName)) as string[];
salesAreaNames.forEach((salesAreaName) => {
const salesAreaData = data.find((d) => d.kagName === salesAreaName);
const row: any = {
kagName: salesAreaData.kagName,
values: {},
mandantKagId: salesAreaData.mandantKagId,
};
salesAreaData.deadlines.forEach((deadline) => {
row.values[deadline.period.toLowerCase()] = this.transformAmount(
deadline.value,
);
});
rows.push(row);
});
this.data = rows;
}为了帮助阅读代码,我建议您始终格式化代码。试一试像Prettier这样的工具。
https://stackoverflow.com/questions/67435467
复制相似问题