zoukankan      html  css  js  c++  java
  • js对象数组新增、修改时的验证是否重复的逻辑

    JS代码:

    // 定义数据集合
    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('')

    运行结果:

  • 相关阅读:
    day4-1
    day3-1
    day1-3
    day2-1
    day1-2
    day1 1
    对象的高度整合
    类和数据类型
    对象的绑定方法
    python总结
  • 原文地址:https://www.cnblogs.com/jardeng/p/13471377.html
Copyright © 2011-2022 走看看