在JavaScript中对对象进行数学操作

3

我正试图像这样操作一个对象中的属性:

for (property in posts.data) {
    property = property+1+",";
    output += property;
}
document.write(output);

属性是数字:0、1、2等。
我想在这种情况下得到结果1,2,3。但实际上我得到的是01,11,21等等……它似乎把属性视为文本字符串而不是数字。为什么?我该怎么办?

1
因为所有的属性名称都是字符串。你可以先将它们转换为数字。 - Felix Kling
如何将字符串转换为数字? - Himmators
1
https://dev59.com/rnNA5IYBdhLWcg3wAItP - Felix Kling
4个回答

5

1.一元的'+'操作符可以将字符串转换为整数

for (property in posts.data) {
   var t = +property + 1;
   output += t+",";
}

2.Javascript的parseInt方法

for (property in posts.data) {
    var t = parseInt(property, 10)+ 1;
     output += t+","; 
}
在parseInt函数调用中的第二个参数(radix)将告诉该函数要遵循哪种数字系统。

1

1

property变量解析为Int类型,类似于parseInt()函数。

for (property in posts.data) {
    var p = parseInt(property)+1+",";
    output += p;
 }

1

您可以强制将字符串转换为整数

for (property in posts.data) {
  var v = parseInt(property, 10) + 1;
  output += v + ",";
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接