JavaScript实现的类字典插入或更新方法实例
以下是具体的实现代码:
```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]; // 更新字段值
}
break; // 找到后退出循环
}
}
array[len] = {}; // 新增一个空对象
array[len][keyName] = keyVal; // 设置键值
for (var k = 0; k < fieldNames.length; k++) {
array[len][fieldNames[k]] = fieldVals[k]; // 设置字段值
}
}
}
```
```javascript
var orders = [
{
"OrderId": 1,
"OrderAmount": {
"OldValue": 10,
"NewValue": 20
}
},
{
"OrderId": 2,
"OrderAmount": {
"OldValue": 20,
"NewValue": 30
}
}
];
```
我们根据订单ID为1的记录,更新其订单金额:
```javascript
insertOrUpdate(orders, "OrderId", 1, ["OrderAmount"], [{"OldValue": 145, "NewValue": 1125}]);
console.dir(orders); // 输出更新后的数组
```javascript