js对象数组新增、修改时的验证是否重复的逻辑

7 篇文章 0 订阅
4 篇文章 0 订阅
// 定义数据集合
const persons = [
  { id: 1, name: '张三' },
  { id: 2, name: '李四' }
]
console.log('')
console.log('初始化数据为:', JSON.stringify(persons))
console.log('')

// --------- 设定场景1 -> 新增时存在相同姓名 ---------
console.log('-------------------场景1-------------------')
// 新增状态id为-1,验证后重新在前端生成一个id,或者由后台生成
let person1 = { id: -1, name: '张三' }
// 验证
let verifyObj1 = persons.find(item => item.name === person1.name &&
  item.id !== person1.id)
// 如果找到相同对象,则不允许添加
if (verifyObj1) {
  console.log('存在相同姓名,新增失败')
  console.log('场景1结果:', JSON.stringify(persons))
} else {
  // 通过验证,允许新增
  persons.push(person1)
  console.log('场景1结果:', JSON.stringify(persons))
}
console.log('-------------------场景1-------------------')
console.log('')

// --------- 设定场景2 -> 新增时不存在相同姓名 ---------
console.log('-------------------场景2-------------------')
// 新增状态id为-1,验证后重新在前端生成一个id,或者由后台生成
person1 = { id: -1, name: '马六' }
// 验证
verifyObj1 = persons.find(item => item.name === person1.name &&
  item.id !== person1.id)
// 如果找到相同对象,则不允许添加
if (verifyObj1) {
  console.log('存在相同姓名,新增失败')
  console.log('场景2结果:', JSON.stringify(persons))
} else {
  person1.id = persons.length + 1 // ID自增
  // 通过验证,允许新增
  persons.push(person1)
  console.log('场景2结果:', JSON.stringify(persons))
}
console.log('-------------------场景2-------------------')
console.log('')

// --------- 设定场景3 -> 编辑时存在相同姓名 ---------
console.log('-------------------场景3-------------------')
// 编辑状态id为实际的编辑对象id
let personIndex = 0 // 假设编辑张三
let person2 = persons[personIndex]
person2.name = '李四'
// 验证
let verifyObj2 = persons.find(item => item.name === person2.name &&
  item.id !== person2.id)
// 如果找到相同对象,则不允许修改
if (verifyObj2) {
  console.log('存在相同姓名,修改失败')
  console.log('场景3结果:', JSON.stringify(persons))
} else {
  // 通过验证,允许修改
  persons[personIndex] = person2
  console.log('场景3结果:', JSON.stringify(persons))
}
console.log('-------------------场景3-------------------')
console.log('')

// --------- 设定场景4 -> 编辑时不存在相同姓名 ---------
console.log('-------------------场景4-------------------')
// 编辑状态id为实际的编辑对象id
personIndex = 0 // 假设编辑张三
person2 = persons[personIndex]
person2.name = '王五'
// 验证
verifyObj2 = persons.find(item => item.name === person2.name &&
  item.id !== person2.id)
// 如果找到相同对象,则不允许修改
if (verifyObj2) {
  console.log('存在相同姓名,修改失败')
  console.log('场景4结果:', JSON.stringify(persons))
} else {
  // 通过验证,允许修改
  persons[personIndex] = person2
  console.log('场景4结果:', JSON.stringify(persons))
}
console.log('-------------------场景4-------------------')
console.log('')
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值