图示:点每个项都会追加
如何将原始数据变成处理后的 相同的ID取出后来选择的原始数据

       {"id":4,"answer":"c"},
      {"id":5,"answer":"b"},
      {"id":6,"answer":"b"}, 
     {"id":7,"answer":"c"}, 
      {"id":8,"answer":"b"},
      {"id":7,"answer":"d"},
      {"id":8,"answer":"a"},
      {"id":5,"answer":"c"}
]
处理后 [ {"id":4,"answer":"c"}, {"id":5,"answer":"b"}, {"id":6,"answer":"b"}, {"id":7,"answer":"c"}, {"id":8,"answer":"b"}]

解决方案 »

  1.   

    function test(list) {
            let result = [], obj = {}, indexList = ["a", "b", "c", "d"];
            list.forEach(function (item) {
                if (!(obj.hasOwnProperty(item.id) && indexList.indexOf(item.answer) >= indexList.indexOf(obj.id))) {
                    obj[item.id] = item.answer;
                }
            });
            for (let item in obj) {
                result.push({
                    id: item,
                    answer: obj[item]
                });
            }
            return result;
        }
      

  2.   


      <div class="weui-cell__ft">
                <input type="radio" class="weui-check" :value="items.score" @change="changeResult(value.id,items.key,items.score)" :name="'radio'+value.id"  >
                <span class="weui-icon-checked"></span>
              </div> 
      function changeResult(id,answer,score1){ 
            var temp1 = {id,answer}; 
            results1.push(temp1); 
           score=score+parseInt(score1);
            jsonStr = JSON.stringify(results1);  
            console.log(jsonStr);
            
          } 
           function test(list) {
            let result = [], obj = {}, indexList = ["a", "b", "c", "d"];
            list.forEach(function (item) {
                if (!(obj.hasOwnProperty(item.id) && indexList.indexOf(item.answer) >= indexList.indexOf(obj.id))) {
                    obj[item.id] = item.answer;
                }
            });
            for (let item in obj) {
                result.push({
                    id: item,
                    answer: obj[item]
                });
            }
            return result;
        }
        function submit() {  
            var zong; 
            var zui;
            var answer;
            var bian;
            var jsonObj =  JSON.parse(jsonStr);//转换为json对象
            jsonObj1=test(jsonObj);
                for(var i=0;i<jsonObj1.length;i++){            bian='"'+jsonObj[i].id+'"'+':'+'"'+jsonObj[i].answer+'"'+',';
                  zong=zong+bian; 
                  // console.log(zong=zong+bian); 
          }
           zui=zong.slice(0,zong.length-1); 
                // console.log(zui);
          var answer1=zui.replace('undefined','');        answer='{'+answer1+'}';
           console.log(answer);
          console.log(this.score);
         var token=localStorage.getItem('token');
         var xinxi=localStorage.getItem('student');
         var student= eval('('+xinxi+')');
         // console.log(student);
        var teacherid=localStorage.getItem('teacherid');
        var testpaperid=localStorage.getItem('testpaperid');
        var pjid=localStorage.getItem('pjid');
          $.ajax({
                        type: "post",
                        url:"http://127.0.0.1/newtp5/index.php/Xinxi/index/pj2",
                        data: {
                          'token':token,
                          'score':score,
                          'student':xinxi,
                          'answer':answer,
                          'pjid':testpaperid,
                          'teacherid':teacherid,
                          'pjid':pjid,
                        },
                        dataType:'json',                    success: function (data) {
                          alert("评卷成功!将回到登录页");
                          localStorage.clear();
                          setTimeout(function(){
                            window.location="login.html";
                            },2000);
                          
                          
                        }, 
                        fail:function(e){
                            window.alert("提交失败~"); 
                        },
                }) 
      }
      

  3.   

    我是按你的例子给的算法啊,如果answer还有除a b c d外的枚举值,你要往indexList里加。