对Vue进行类型转换

时间:2017-06-14 09:23:55

标签: javascript vue.js vuejs2

我正在根据我提供组件的范围创建一个v-for列表:

<div class="checkbox" v-for="(value, key) in range">

我正在将我的数据作为支柱提供:

"{ 0: '0 stars', 1: '1 star', 2: '2 stars' }"

当我记录typeof时,我的v-for键将始终设置为字符串。这很奇怪,因为我传递的对象将密钥保存为数字而不是字符串。

当我将密钥传递给方法时,我不想经常对其进行类型转换。有没有办法轻易地进行类型转换?

还有什么可能导致这个字符串而不是int?

每当我调试我的range对象时,键都会显示为紫色,所以我猜测它们仍被视为整数?

1 个答案:

答案 0 :(得分:1)

在JavaScript对象中,始终是字符串。它提供的键不是字符串,然后通过javascript自动转换为字符串。 AFAIK是设计选择。见Object.keys()

你可以将索引作为你的第三个论点传递:

<div class="checkbox" v-for="(value, key, index) in range">

并将索引传递给您的方法,但是当vuejs发出警告时(here)

When iterating over an object, the order is based on the key enumeration order of Object.keys(), which is not guaranteed to be consistent across JavaScript engine implementations.

最好像这样投射myMethod(Number(key))