Javascript 在将输出返回给用户JS之前过滤掉已删除的结果
在从服务器返回输出之前,我尝试过滤掉所有已删除的部分 我的模式的结构可以描述如下:Javascript 在将输出返回给用户JS之前过滤掉已删除的结果,javascript,arrays,node.js,filter,sequelize.js,Javascript,Arrays,Node.js,Filter,Sequelize.js,在从服务器返回输出之前,我尝试过滤掉所有已删除的部分 我的模式的结构可以描述如下: results: - result: -item: -itemReservations: -reservationPart: -isDeleted: true -reservationPart: -isDeleted: fals
results:
- result:
-item:
-itemReservations:
-reservationPart:
-isDeleted: true
-reservationPart:
-isDeleted: false
-reservationPart:
-isDeleted: false
我添加了下面的代码,但是返回的输出仍然包含part.isDeleted
为true
的结果
...
.then(results =>
results.map(result => {
if (result.item.itemReservations.length > 0) {
result.item.itemReservations.map(
itemReservation => {
itemReservation.reservationParts = itemReservation.reservationParts.filter(
part => !part.isDeleted
);
return itemReservation;
}
);
}
return result;
})
).then(filteredResults => ...)
该问题是针对
sequelize.js
-result
是sequelize对象,而不是json对象:
添加
constjsonresult=result.toJSON()代码>
解决了这个问题
正确代码:
.then(results =>
results.map(result => {
const jsonResult = result.toJSON();
jsonResult.item.itemReservations.map(
itemReservation => {
itemReservation.reservationParts = itemReservation.reservationParts.filter(
part => !part.isDeleted
);
return itemReservation;
}
);
return jsonResult;
})
).then(filteredResults => ...)
另外,正如另一个答案所建议的-如果(result.item.itemReservations.length>0)
是无用的<代码>[].map(…)
返回[]
您能否用有效的形状对象替换您的模式,以便人们能够更快地在其上编码?