本文介绍一种在JavaScript中实现类似字典功能的数组插入或更新方法。通过遍历数组比对键值,若存在则更新指定字段,若不存在则添加新对象。示例展示了如何基于OrderId进行数据维护,供开发者参考。
JavaScript数组插入或更新实现
本文展示了一种在JavaScript中实现类似字典功能的数组插入或更新方法。
代码主要演示了该类字典插入或更新的核心逻辑,读者理解其实现思路即可。
<script type="text/javascript">
function insertOrUpdate(array, keyName, keyVal, fieldNames, fieldVals) {
var hasExist = false;
var len = array.length;
for (var i = 0; i < len; i++) {
if (array[i][keyName] && array[i][keyName] == keyVal) {
// 已存在则直接更新
hasExist = true;
for (var j = 0; j < fieldNames.length; j++) {
array[i][fieldNames[j]] = fieldVals[j];
}
}
}
if (!hasExist) {// 如果不存在则插入
array[len] = {};
array[len][keyName] = keyVal;
for (var k = 0; k < fieldNames.length; k++) {
array[len][fieldNames[k]] = fieldVals[k];
}
}
}
var orders = [
{
"OrderId" : 1,
"OrderAmount" : {
"OldValue" : 10,
"NewValue" : 20
}
},
{
"OrderId" : 2,
"OrderAmount" : {
"OldValue" : 20,
"NewValue" : 30
}
}];
insertOrUpdate(orders, "OrderId", 1, ["OrderAmount"], [{"OldValue": 145, "NewValue": 1125}]);
console.dir(orders);
insertOrUpdate(orders, "OrderId", 3, ["OrderAmount"], [{"OldValue": 75, "NewValue": 95}]);
console.dir(orders);
</script>
希望这段代码示例能对JavaScript程序设计提供有益参考。