我是使用reduce函数和lodash库的初学者,我试图在此处将数组称为结果,但遇到以下类似情况。

          let result: Array<number> = [];
            result.push(1); // [1]

            _.reduce(array, function(result, el, idx) {
                if(el.node === array[child_index].parent) {
                    result.push(parseInt(idx)); // [2]
                    return result;
                }
            }, result);



我可以问为什么我不能将值推到[1]时将值推到[1]吗?实际上,我在[2]中遇到了此错误消息。
        TypeError:无法读取未定义的属性“ push”,
         我正在使用lodash来简化功能。我也尝试concat它返回相同的错误。如果有人遇到同样的问题,请问对此我有什么建议吗?

最佳答案

如果result语句不为真,则需要返回if作为默认操作,以防止发生错误:

_.reduce(array, function(result, el, idx) {
  if (el.node === array[child_index].parent) {
    result.push(parseInt(idx));
  }
  return result;
}, result);

10-07 19:14
查看更多