首页 > 解决方案 > 我尝试使用 .substring 获取 2 个数字或 1 个数字,但是当我使用 var price 时,只读取一个,为什么?

问题描述

我在 Adob​​e DC 程序上尝试了一个 javascript 项目,我用这个

var t1 = this.getField("Text1").value.substring(80,82)
var t2 = this.getField("Text2").value.substring(80,82)
var t3 = this.getField("Text3").value.substring(80,82)
var t4 = this.getField("Text4").value.substring(80,82)

如果 82 是真空,则抓取位置 (80,82) 一个数字;如果 80 和 82 具有数值,则抓取 2 个数字……如果是其他字符,则抓取零,例如:abcd ..!#...

然后我用它来检查这个数字是否排序并返回真或假

    var points = [t1, t2, t3, t4];

    function is_sorted(points) {
    var len = points.length - 1;
    for(var i = 0; i < len; i++) {
        if(points[i] > points[i+1]) {
            return false;
        }
    }
    return true; }

如果我把这个值返回 false :

假 2,9,39,44 假 1,2,9,39 假 1,9,22,39

如果我把这个值返回 true :

真 1,2,3,4 真 11,22,33,44 真 1,21,3,4 真 11,2,3,4 真 1,2,33,4

我认为程序只读取位置 80 上的第一个值并检查是否排序,为什么不读取 2 个值?问题是 .substring 命令吗?当我检查jsbin.com上的代码时,工作正常!请问有什么解决办法吗?

标签: javascript

解决方案


points包含字符串并按字典顺序比较字符串(比较第一个字符,如果相等则继续)

"32" < "4" // true

您可能想要比较数字:

if(+points[i] > +points[i+1]) 

推荐阅读