我正在过滤一个数组并将新返回的数组存储到另一个数组中,然后执行一些操作,但过滤器函数没有完成,编译器到达下一行。我怎样才能让编译器停止直到过滤器函数完成,这样我就不会在下面得到未定义的信息。
let pricePublishData = [{isInternalBp: 'Y'}, {isInternalBp: 'N'}]
let arr1 = [];
let arr2 = [];
arr1 = pricePublishData.filter(item => item.isInternalBp == 'Y');
arr2 = pricePublishData.filter(item => item.isInternalBp != 'Y');
const fc = [];
arr1.forEach(ca => {
arr2.forEach(cd => {
if (
ca.bpName == cd.corporate &&
cd.userType == 'Grower' &&
cd.fulfillmentStatus == 'Not Fulfilled' &&
cd.itemOpenQuantityInBase > 0
) {
fc.push(cd);
}
});
});
let combinedAcquirers = [];
const fca = fc.map({key: item.corporate, value: item.corporate});
combinedAcquirers = [...fca, arr2.map({key:item.bpName, value: item.bpName})];
问题是当 arr1 还没有值时,代码会直接到达 foreach 循环。我如何确保 arr1 在到达 foreach 循环之前具有值,以便它不会出现未定义的错误。