账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    js查找对象数组元素中的key,如果有则替换,没有则添加
    56
    0

    现在有一数组,我需要判断里面是否有我当前的questionId,如果有则用一个js对象替换,没有则直接添加。我想用for循环的方式来查找,但是总会被添加好多次,请大家帮忙看下:

    即:用temp里面的questionId和data里面的questionId进行比较,如果data里面有这个questionId,则用temp里面的answer替换相应的answer,如果data里面没有这个questionId,则直接添加temp数据到data。

    问题:我用for循环遍历的时候,总会重复添加数据,就是说每次都会重复遍历数据。

    let data=[
        {answer:"30",questionId:"34",type:"1"},
        {answer:"42",questionId:"35",type:"1"}
    ];
    
    // 当前选中的选项数据
    let temp={
      type:1,
      answer:optionId,//对应上面的数字30,42
      questionId:radio.questionnaireQuestionsId//对应上面的数字34,35
    }
    
    // 取回store中的答案
    let data=this.$store.state.answers;//就是最上面的data
    // 当前问题id
    let id=temp.questionId;
    
    if(answers.length==0){
      // 如果所有题目都未作答则直接提交
      this.$store.commit('addAnswer', data);
      console.log('开始作答')
    }else {
      // 已经有答案则判断是否该题答案
      for(let i in answers) {
        let questionId = answers[i].questionId;
    
        if(id==questionId){
          // 如果存在答案则替换原答案
          this.$store.commit('delIndex',i);
          this.$store.commit('addAnswer',data);
          console.log('我要替换原来答案',data);
        }else if(id!=questionId){
          // 否则直接提交
          this.$store.commit('addAnswer',data);
          console.log('初次提交答案',data)
        }
      }
    }
    1
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 回眸一笑 普通会员 1楼
      { "error": "Failed to generate content." }
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部