从jquery数组获取数据和值

问题描述:

我想检查数组中是否存在id,如果id已经存在,那么我将更新该id的值。否则,我会将id和它的值推入数组中。我怎样才能实现与jQuery的?从jquery数组获取数据和值

我都试过,但它不工作,但阵列

$(itemData).each(function() { 
     var name = $(this).data("name"); 
     var value = parseFloat($(this).data("amount")); 

     if(dataArr.length == 0) { 
      dataArr.push([name, value]); 

     } else { 
      $.each(dataArr, function(n, v) { 
       if(name == n) { 
        v += value; 
       }else { 
        dataArr.push([name, value]); 
       } 
      }); 
     } 
    }); 

你靠近,请尝试以下操作:

$(function() { 
 
    var itemData = $('.item-data'), 
 
    dataArr = []; 
 

 
    $(itemData).each(function() { 
 
    var name = $(this).data("name"); 
 
    var value = parseFloat($(this).data("amount")); 
 

 
    var found = false; 
 
    $.each(dataArr, function(index, val) { 
 
     if (!found && name == val[0]) { 
 
     val[1] += value; 
 
     found = true; 
 
     } 
 
    }); 
 
    if (!found) { 
 
     dataArr.push([name, value]); 
 
    } 
 
    }); 
 

 
    console.log('dataArray = ', dataArr); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="item-data" data-name="name1" data-amount="1"></div> 
 
<div class="item-data" data-name="name2" data-amount="2"></div> 
 
<div class="item-data" data-name="name1" data-amount="3"></div> 
 
<div class="item-data" data-name="name2" data-amount="4"></div> 
 
<div class="item-data" data-name="name3" data-amount="5"></div>

+0

完美。非常感谢 – 2015-02-09 06:39:32

我想这将是一个哈希容易大小的两倍(对象常量),而不是一个数组:

var dataObj = {}; 
$(itemData).each(function() { 
     var name = $(this).data("name"); 
     var value = parseFloat($(this).data("amount")); 
     dataObj[name] = typeof dataObj[name] !== 'undefined' ? dataObj[name] + value : value; 
});