我是使用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它返回相同的错误。如果有人遇到同样的问题,我可以为此提供一些建议吗?
答案 0 :(得分:1)
如果result
语句不正确,则需要返回if
作为默认操作,以防止发生错误:
_.reduce(array, function(result, el, idx) {
if (el.node === array[child_index].parent) {
result.push(parseInt(idx));
}
return result;
}, result);