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

Javascript 运行到无法读取lodash的reduce函数中未定义的属性“push”,javascript,arrays,object,ecmascript-6,lodash,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) {

我是使用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]处推送值,而我不能在[2]处推送值,实际上,我在[2]中遇到了这个错误消息。 TypeError:无法读取未定义的, 我使用lodash来实现reduce函数。我也试过了,它返回了同样的错误。如果有人有相同的问题,我可以得到一些建议吗?

如果If语句不正确,您需要将结果作为默认操作返回,以防止出现错误:

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

不用担心@AnnaLee,总是乐于助人。如果我的回答解决了你的问题,请将其标记为已接受。