我正在尝试使用.map()对对象数组进行简单除法。但是,当零除以零时将返回NaN。如何检查此计算并返回数字0而不是NaN?
mounted() {
console.log(this.dataOverview);
let newData = this.dataOverview.map((data) => {
return {
conversationSource: data.conversationSource,
Id: data.Id,
answerableConversations: data.conversationCount,
interactiveConversations: data.interactive,
leads: data.sent,
interactiveLeadConversations: ((data.sent / data.interactive) * 100).toFixed(0)
}
})
this.convertedData = newData;
console.log(this.dataOverview);
}
使用此方法,当data.sent和data.interactive均为零时,interactiveLeadConversations会返回NaN。
答案 0 :(得分:6)
您不需要显式检查。这应该是您的第10行:
interactiveLeadConversations: (((data.sent / data.interactive) || 0) * 100).toFixed(0)
我在这里要做的是替换表达式
(data.sent / data.interactive)
使用
( (data.sent / data.interactive) || 0 )
NaN
的计算结果为false
,因此,如果表达式(data.sent / data.interactive)
等于NaN
,则可以选择0
。