我是使用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);