日期:2014-05-16  浏览次数:20332 次

一个数组算法的复杂操作,谁会吗
JScript code

//有这样的数组
var areaObject=[     
                     {name:2日,count:901},
                {name:3日,count:807},
                {name:4日,count:41},
                {name:5日,count:741},
                {name:6日,count:1100}
];

现在传进来一堆参数如下:
8733769769796@2012-06-01,3@2012-06-02,0@2012-06-03,2@2012-06-04,0

欲实现:第一个@前面的乱七八糟的值不要,取每个@后面的日期的日(可以截取前8个字符)并在后面加日字,得出name值,逗号后面的数字,如果该数字为0,则加2,不为0则不加,然后再除以9,得出count值,然后放在var areaObject=[ ]里面,对了,还要特别取出最大的count值。很复杂啊~~~咋操作呢? 分不多了,意思下 谢!


------解决方案--------------------
JScript code
var areaObject=[
    {name:'2日',count:901},
    {name:'3日',count:807},
    {name:'4日',count:41},
    {name:'5日',count:741},
    {name:'6日',count:1100}
];

var str = '8733769769796@2012-06-01,3@2012-06-02,0@2012-06-03,2@2012-06-04,0';
str = str.substr(str.indexOf('@') + 1);
var ar = str.split('@');
for (var i = 0; i < ar.length; i ++) {
    var o = {};
    var tmp = ar[i].split(',');
    o.name = tmp[0].substr(-2) + '日';
    o.count = (tmp[1] == 0) ? (tmp[1] + 2) / 9 : tmp[1] / 9;
    areaObject.push(o);
}