首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何修复错误值不可迭代的问题

如何修复错误值不可迭代的问题
EN

Stack Overflow用户
提问于 2021-05-07 21:02:26
回答 2查看 80关注 0票数 2

在我的表中,我通过输出值来迭代各行。一旦没有值,我就会得到错误value is not iterable。我该如何解决这个错误呢?

我的代码:

代码语言:javascript
复制
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;
        }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-05-07 21:07:08

你可以做到:

代码语言:javascript
复制
 for (const deadlineEntity of (value ?? [])) { // Here is the Error

它将防止该值出现错误,因为如果它没有某个值,它将迭代[]

票数 2
EN

Stack Overflow用户

发布于 2021-05-07 21:58:40

试试这样的..。

代码语言:javascript
复制
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这样的工具。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67435467

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档