解决方案 »

  1.   

    var a=[];
    for(var i=0;i<arr.length;i++){
    if(!a[arr[i]]){
    a[arr[1]]=1;
    }
    }
    var b=[];
    for(var i in arr){
    b.push(i);
    }
    alert(b.length)
    你是要数组去重吗
      

  2.   

    var arr=[344,233,333,444,444,333];
    function unique(arr) {
        var result = [], hash = {};
        for (var i = 0, elem; (elem = arr[i]) != null; i++) {
            if (!hash[elem]) {
                result.push(elem);
                hash[elem] = true;
            }
        }
        return result;
    }
    arr = unique(arr);
    alert(arr.length)
      

  3.   

    原代码如下:
    this.shipping = function(){
    if( parseInt(this.quantity,10)===0 )
    return 0;
    var shipping =  parseFloat(this.shippingFlatRate) + 
       parseFloat(this.shippingTotalRate)*parseFloat(this.total) +
    parseFloat(this.shippingQuantityRate)*parseInt(this.quantity,10),
    nextItem,
    next;
    for(next in this.items){
    nextItem = this.items[next];
    if( nextItem.shipping ){
    if( typeof nextItem.shipping == 'function' ){
    shipping += parseFloat(nextItem.shipping());
    } else {
    shipping += parseFloat(nextItem.shipping);
    }
    }
    }
    alert(shipping);
    return shipping;
    }
    }你们能根据我的实际代码来改动吗
    你们说的这些网上都找得到 但是我不会加入我现在的代码
      

  4.   

    不仅仅是去重的问题
    现在shipping得出的总和 我想实现shipping得出的是去除重复得出由几个数字相加
      

  5.   

    this.shipping = function(){
    if( parseInt(this.quantity,10)===0 )
    return 0;
    var shipping =  parseFloat(this.shippingFlatRate) + 
       parseFloat(this.shippingTotalRate)*parseFloat(this.total) +
    parseFloat(this.shippingQuantityRate)*parseInt(this.quantity,10),
    nextItem,
    next;
    for(next in this.items){
    nextItem = this.items[next];
    if( nextItem.shipping ){
    if( typeof nextItem.shipping == 'function' ){
    shipping += parseFloat(nextItem.shipping());
    } else {
    shipping += parseFloat(nextItem.shipping);
    }
    }
    }function unique(arr) {
        var result = [], hash = {};
        for (var i = 0, elem; (elem = arr[i]) != null; i++) {
            if (!hash[elem]) {
                result.push(elem);
                hash[elem] = true;
            }
        }
        return result;
    }
    shipping= unique(shipping);alert(shipping);
    return shipping;
    }
    }
      

  6.   

    忘了你是求数组的长度了,改一下:var lenght = shipping.length;
    alert(length);
    return length
      

  7.   


    var lenght = shipping.length;
    alert(length);
    return length
     要放入哪里啊 兄弟 我是超级新人 你能给个完整版吗
      

  8.   

    for(next in this.items){
    nextItem = this.items[next];
    if( nextItem.dianid ){
    if( typeof nextItem.dianid == 'function' ){
    shipping += parseFloat(nextItem.dianid());
    } else {
    shipping += parseFloat(nextItem.dianid());
    }
    }
    }
    var shipping=[344,233,333,444,444,333];
    function unique(arr) {
        var result = [], hash = {};
        for (var i = 0, elem; (elem = arr[i]) != null; i++) {
            if (!hash[elem]) {
                result.push(elem);
                hash[elem] = true;
            }
        }
        return result;
    }
    arr = unique(shipping);
    shipping= arr.length;
    alert(shipping);
    return shipping;
    }-----------------我这样测试是对的---------------------
    可是怎么得出 var shipping=[344,233,333,444,444,333]; 呢?
    目前var shipping 得出的是总和 而不是[344,233,333,444,444,333];谁能帮帮忙 写个代码 困扰了我一天了!!
      

  9.   

    是否可以将你的意思理解为,去除重复的数字并记录重复数字的个数,然后再将剩余的数字相加??    var arrStr="344+223+333+444+444+333";
        var arr=arrStr.split("+"),count=0,sum=0;
        arr.forEach(function(element,index){
            var lastIndex=arr.lastIndexOf(element);
            if(index!==lastIndex){
                  arr.splice(lastIndex,1);
                  count++;
                  console.log(element);
            }
        });
        console.log(arr);
        arr.forEach(function(element){
            sum+=parseFloat(element);
        });
        console.log("the sum is:",sum,"the duplicate count of number is:",count);
      

  10.   

    --------------------- 这样说吧---------------------
    var shipping=[344,233,333,444,444,333];
    function unique(arr) {
        var result = [], hash = {};
        for (var i = 0, elem; (elem = arr[i]) != null; i++) {
            if (!hash[elem]) {
                result.push(elem);
                hash[elem] = true;
            }
        }
        return result;
    }
    arr = unique(shipping);
    shipping= arr.length;
    alert(shipping);
    return shipping;
    }
    我以上已经测试去重复成功。
    现在我要用for()循环 怎么得出 var shipping=[344,233,333,444,444,333];的值,就是用for()写出得出有,号隔开的值。
    如下例:
    这是我的for代码
    for(next in this.items){
    nextItem = this.items[next];
    if( nextItem.dianid ){

    shipping =nextItem.dianid;

    }
    }
    可是var shipping得出是只是一个数字组(344) 而不是得出累积成 344,233,333,444,444,333请问for要怎么写 才能得出344,233,333,444,444,333这样的数组
      

  11.   

    --------------------- 这样说吧---------------------
    var shipping=[344,233,333,444,444,333];
    function unique(arr) {
        var result = [], hash = {};
        for (var i = 0, elem; (elem = arr[i]) != null; i++) {
            if (!hash[elem]) {
                result.push(elem);
                hash[elem] = true;
            }
        }
        return result;
    }
    arr = unique(shipping);
    shipping= arr.length;
    alert(shipping);
    return shipping;
    }
    我以上已经测试去重复成功。
    现在我要用for()循环 怎么得出 var shipping=[344,233,333,444,444,333];的值,就是用for()写出得出有,号隔开的值。
    如下例:
    这是我的for代码
    for(next in this.items){
    nextItem = this.items[next];
    if( nextItem.dianid ){

    shipping =nextItem.dianid;

    }
    }
    可是var shipping得出是只是一个数字组(344) 而不是得出累积成 344,233,333,444,444,333请问for要怎么写 才能得出344,233,333,444,444,333这样的数组
    首先搞清楚,你的最终结果是一个数组还是一个字符串???能否给一个例子
    你的原话“现在我要用for()循环 怎么得出 var shipping=[344,233,333,444,444,333];的值,就是用for()写出得出有,号隔开的值。”抱歉 这句话 没听懂