我在一个项目中,我需要检查问题round_id的值是否等于我从参数中获得的回合ID。但是,当我相互检查它们时,它们实际上是相同的值,但彼此并不“相等”。
这是我的代码:
mounted() {
//gets the params from the url
this.routeParams = this.$route.params;
},
methods:{
...mapActions('question', ['newQuestion', 'fetchQuestions']),
setOrderNumber() {
//sets the order number for this question
let $orderNumber = 1;
console.log("The questions:");
console.log(this.questions);
for (let $i = 0; $i < this.questions.length; $i++)
{
console.log('this.questions[$i].round_id:');
console.log(this.questions[$i].round_id);
console.log('this.routeParams.round_id:');
console.log(this.routeParams.round_id);
console.log('this.questions[$i].round_id === this.routeParams.round_id:');
console.log(this.questions[$i].round_id === this.routeParams.round_id);
if(this.questions[$i].round_id === this.routeParams.round_id)
{
console.log('$orderNumber before:');
console.log($orderNumber);
$orderNumber++;
console.log('$orderNumber after:');
console.log($orderNumber);
}
}
我注意到问题3中的3是蓝色,路线params.round_id是黑色。这可能是问题所在吗?
答案 0 :(得分:1)
请注意,您在控制台中看到的数字3
具有不同的颜色。灰色的3是字符串,就像您在其前面打印的字符串一样。蓝色3
,就像您打印的蓝色false
一样,都是基元。在这种情况下,蓝色的3
是一个数字。您可以通过记录typeof this.questions[$i].rount_id
和typeof this.routeParams.round_id
来验证这一点。
考虑到url本身是一个字符串,因此url中的参数是字符串也就不足为奇了。只需执行parseInt(variable, 10);
(mdn)即可将其解析为数字。