从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>
答
我想这将是一个哈希容易大小的两倍(对象常量),而不是一个数组:
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;
});
完美。非常感谢 – 2015-02-09 06:39:32