具有键和值 Remove 的字符串数组已存在



我发现了一些类似的问题,但没有一个对我有帮助。

我有一个数组,我正在将项目推送到其中。我想检查是否已经有一个项目,然后删除并添加一个新值。

我这样做是为了成功进行 ajax 调用,

var taxSplitUp = []; // my array
// ajax call here, in the success 
for (var i in data.d) { 
var ItemTaxAmt= data.d[i].ItemTaxAmt;
var TaxName = data.d[i].TaxName;
var idx = $.inArray(TaxName, taxSplitUp); // checks if already exist
if (idx == -1) {
var tx1 = '{"' + TaxName + '":"' + parseFloat(ItemTaxAmt).toFixed(2) + '"}';
taxSplitUp.push(tx1);
} 
else {
taxSplitUp.splice(idx, 1); // removing
var t1 = taxSplitUp[TaxName]; // selecting the value from array
var tx1 = '{"' + TaxName + '":"' + parseFloat(ItemTaxAmt).toFixed(2) + parseFloat(t1).toFixed(2) + '"}';
taxSplitUp.push(tx1);
}
}

在这里,如果相同的键出现,那么我想将值加在一起,并且只想在数组中包含一个,但检查总是返回 false 并将另一个添加到数组中。

请帮忙。

$.inArray 不适用于关联数组。尝试以下解决方案

for (var i in data) {
var ItemTaxAmt= data[i].ItemTaxAmt;
var TaxName = data[i].TaxName;
console.log(TaxName);
$.map(taxSplitUp, function(item, index) {
if (item.TaxName == TaxName) {
item.ItemTaxAmt = ItemTaxAmt;
}else{
taxSplitUp.push({
'TaxName' :TaxName,
'ItemTaxAmt' : ItemTaxAmt
});
}
});
}
console.log(taxSplitUp);

最新更新