当前位置: 代码迷 >> JavaScript >> 函数内部的函数未执行
  详细解决方案

函数内部的函数未执行

热度:24   发布时间:2023-06-07 16:30:51.0

我需要一个返回对象数组的函数,但是目前,我正在获取一个空数组作为返回值。

我有以下代码:

componentWillMount() {
    const data = {
        invoice: {
            documentID: '_e4564',
            displayName: '2019-02-03',
            url: 'https://www.urltoinvoice.com'
        },

        conditions: {
            documentID: '_e9365',
            displayName: 'Conditions company x',
            url: 'https://www.urltoconditions.com'
        },

        reminders: [
            {
                documentID: '_e4364',
                displayName: 'First reminder',
                url: 'https://www.urltofirstreminder.com'
            },
            {
                documentID: '_e0254',
                displayName: 'Second reminder',
                url: 'https://www.urltosecondreminder.com'
            },
        ]
    }

    this.setState({ 
        documents: this.getDocuments(data)
    })
}

getDocuments = documents => {
    const arr = [];

    function addDocument(documents, labelKey) {
        Object.entries(documents).forEach(([key, val]) => {
            if (Array.isArray(val)) {
                addDocument(val, key);
            } else {
                arr.push({ documentID: val.documentID, displayName: `${labelKey || key}: ${val.displayName}` });
            }
        });
    };

    return arr;
}

此时,该代码未执行addDocument函数。 有人可以告诉我我在做什么错?

在return语句之前添加的addDocument的调用:

getDocuments = documents => {
      const arr = [];

      function addDocument(documents, labelKey) {
        Object.entries(documents).forEach(([key, val]) => {
            if (Array.isArray(val)) {
                addDocument(val, key);
            } else {
                arr.push({ documentID: val.documentID, displayName: `${labelKey || key}: ${val.displayName}` });
            }
        });
      };

      addDocument(documents) ;

      return arr;
    }

由于的要求,因此仅使用documents参数调用addDocument

  相关解决方案