当它是数组和不是数组时如何映射响应?
How to map an response when It's array and when It's not?
我只是编写了两个简单的函数来验证一个字段是否具有特定值,但在某些情况下,响应可能是一个数组。我可以将这些功能简化为一个功能吗?当响应只是一个对象时,我尝试使用相同的“isOrderInLastMile”函数,但我检索到“object.map 不是函数”错误。
函数1:当响应是一个对象数组时,我使用这个函数。
export function isOrderInLastMile(pieces: any): boolean {
const totalPieces: number = pieces.length;
let momentFound: number = 0;
pieces.map((element) => {
if (
element.stagesHistory &&
getCurrentMoment(element.stagesHistory) ===
MomentsLabel.En_última_milla_id
) {
momentFound = momentFound + 1;
}
return momentFound;
});
return totalPieces === momentFound;
}
功能2:当这个响应只是一个对象时我使用这个功能
export function isPieceInLastMile(piece: any): boolean {
return (
piece.stagesHistory &&
getCurrentMoment(piece.stagesHistory) === MomentsLabel.En_última_milla_id
);
}
如何统一这两个功能?谢谢!!! :)
要么将您的单个元素包装在一个数组中,如下所示:
export function isPieceInLastMile(piece: any): boolean {
return isOrderInLastMile([piece]);
}
或在回调中使用单个函数
return pieces.every(isPieceInLastMile);
(可以使用后一个选项,而不是计算所有匹配项)
我只是编写了两个简单的函数来验证一个字段是否具有特定值,但在某些情况下,响应可能是一个数组。我可以将这些功能简化为一个功能吗?当响应只是一个对象时,我尝试使用相同的“isOrderInLastMile”函数,但我检索到“object.map 不是函数”错误。
函数1:当响应是一个对象数组时,我使用这个函数。
export function isOrderInLastMile(pieces: any): boolean {
const totalPieces: number = pieces.length;
let momentFound: number = 0;
pieces.map((element) => {
if (
element.stagesHistory &&
getCurrentMoment(element.stagesHistory) ===
MomentsLabel.En_última_milla_id
) {
momentFound = momentFound + 1;
}
return momentFound;
});
return totalPieces === momentFound;
}
功能2:当这个响应只是一个对象时我使用这个功能
export function isPieceInLastMile(piece: any): boolean {
return (
piece.stagesHistory &&
getCurrentMoment(piece.stagesHistory) === MomentsLabel.En_última_milla_id
);
}
如何统一这两个功能?谢谢!!! :)
要么将您的单个元素包装在一个数组中,如下所示:
export function isPieceInLastMile(piece: any): boolean {
return isOrderInLastMile([piece]);
}
或在回调中使用单个函数
return pieces.every(isPieceInLastMile);
(可以使用后一个选项,而不是计算所有匹配项)