碰到无法读取lodash的reduce函数中未定义的属性“ push”

时间:2019-08-09 21:54:11

标签: javascript arrays object ecmascript-6 lodash

我是使用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它返回相同的错误。如果有人遇到同样的问题,我可以为此提供一些建议吗?

1 个答案:

答案 0 :(得分:1)

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

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