我是使用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]中遇到了这个错误消息。 类型错误:无法读取未定义的属性“push”, 我正在使用 lodash 来减少功能。我也尝试了 concat 它返回了相同的错误。如果有人遇到同样的问题,我可以得到一些建议吗?
最佳答案
如果 if
语句不为 true,您需要返回 result
作为默认操作,以防止出现错误:
_.reduce(array, function(result, el, idx) {
if (el.node === array[child_index].parent) {
result.push(parseInt(idx));
}
return result;
}, result);
关于javascript - 在lodash的reduce函数中遇到Cannot read property 'push' of undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57437529/