如何遍历数组并替换它的一些值?

时间:2015-09-23 01:36:53

标签: javascript for-loop replace

我现在有以下代码:

shp = this.getField("shp");
out = this.getField("txt")
p = shp.value.split("");
pn = "";

for (i = 0; i < p.length; i++) { 
    pn += p[i].charCodeAt(0);
};

现在我想循环通过pn 检查大于56的值

这些值我想替换为(值 - 63)%10

我该怎么做?

所以,要更清楚一点:

我想重写以下vba代码以在adobe acrobat上运行它:

Function upsp(number)
qsm = 0
For i = 1 To 15
p = Mid(number, i, 1)
If Asc(p) > 57 Then p = (Asc(p) - 63) Mod 10
qsm = qsm + (p * (2 - i Mod 2))
Next
upsp = 10 - (qsm Mod 10)
If upsp = 10 Then upsp = 0
End Function

此代码计算ups跟踪号的校验和。

2 个答案:

答案 0 :(得分:0)

试试这个:

shp = this.getField("shp");
out = this.getField("txt")
p = shp.value.split("");
pn = "";

for (i = 0; i < p.length; i++) { 
    // pn += p[i].charCodeAt(0);
    if (p[i]>56) p[i] = (p[i] - 63)%10; 
};

答案 1 :(得分:0)

为什么不用你的代码,而是用

for (i = 0; i < p.length; i++) { 
  if(p[i].charCodeAt(0) > 56) pn += (p[i].charCodeAt(0) -63)%10;//do you want 10 percent or modulus of 10? %10 will be the modulus /10 woul be 10 percent
  else
  pn += p[i].charCodeAt(0);
};

如果它不是你想要的,你应该重新解释这个问题,因为我老实说没有得到它。