使用前导编号对字符串字段上的JScript数组进行排序

时间:2013-07-23 18:59:55

标签: javascript spservices

我有一个JS对象,带有另一个JS对象的内部数组。内部onw就像

function outerObj()
{
    this.items = new Array();
    this.clear = function () {
        this.items = new Array();
    }
    function __item(v1, v2, v3, v4) {
        this.Val_1 = v1;
        this.Val_2 = v2;
        this.Val_3 = v3;
        this.Val_4 = v4;
    }
    this.add = function (vA, vB, vC, vD) {
        this.items.push( new __item(vA, vB, vC, vD) );
    }
    ...
}

通过SPServices getListItems()调用加载数组,在结果XML上使用.each( . . . )。结果是有序的(<OrderBy>),但结果是常见的刺激:

1
10
11
2
21
3
42A
42B

我无法摆脱包含字母(这是真实世界物品的名称),而我想要排序

1
2
3
10
11
21
42A
42B

建议?

2 个答案:

答案 0 :(得分:1)

只需使用javascript array.sort()

代码看起来像这样:

this.items.sort()

下面是一个链接:Javascript sort reference

答案 1 :(得分:1)

实际上,以利沙,它看起来像这样。

    items.sort(function (v1, v2) { 
        /* algorythm here */ 
    }); 

algorythm是我可以添加智能的地方,它知道数组是持有对象,而不是值,以及我可以真正检查我正在排序的属性。

实际上,我可以编写一个外部函数,并从匿名函数中调用它。

谢谢以利沙;这让我走上了正轨。

我在这里回答,以便我可以使用格式化答案的能力。但是以利沙应该得到这个信用。

顺便提一下,该函数需要返回负数,零或正数。返回的符号表示传入的两个参数之间的排序顺序。