javascript - 具有键和值删除的字符串数组已存在
问题描述
我发现了一些类似的问题,但没有一个对我有帮助。
我有一个数组,我正在将项目推入其中。我想检查是否已经有一个项目然后删除并添加一个新值。
我是在成功调用 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);
推荐阅读
- python - 如何聚合扩展值 - python - pandas
- python-3.x - Python3 - 如何打印 dict 值的一部分?
- oracle-apex-5.1 - Oracle APEX - 动态生成的区域不会被刷新
- c# - 当 DataGridView 的数据源是 List 时,通过文本框过滤 DataGridView (C#)
- python - Visual Studio 2017 中的 Python 无法通过搜索路径找到模块
- php - Laravel 请求在 Controller 中有效,但在 Model 中无效
- woocommerce - 如何获取具有特定名称/值的所有变体 ID
- coq - 通过相互共游定义一对共定点
- r - as.Date() 仅对日期时间字符串的时间部分返回 NA
- javascript - 如何使用 Javascript 在 Firebase 中仅显示与今天日期相对应的特定子项?