对具有前导编号s的字符串字段上的JScript数组进行排序



我有一个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

建议?

只需使用javascript array.sort()

代码如下:

this.items.sort()

这里有一个链接:Javascript排序引用

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

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

算法是我可以添加智能的地方,它知道数组包含的是对象,而不是值,并且我可以真正检查排序所依据的属性。

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

感谢以利沙;这让我步入正轨。

我在这里回答,这样我就可以使用格式化答案的能力。但以利沙应该得到这一点的赞扬。

顺便说一句,函数需要返回一个负数、零或正数。返回内容的符号表示传入的两个参数之间的排序顺序。

相关内容

  • 没有找到相关文章

最新更新