【问题标题】:Push and select data from Array of Objects从对象数组中推送和选择数据
【发布时间】:2020-11-18 19:01:02
【问题描述】:

所以我有一个这样的对象数组:

    var dataQuestions = [ {
        question : 1,
        reponse : 3,
    },{
        question : 2,
        reponse : 7,
    },{
        question : 3,
        reponse : 5,
    }];

我想通过点击一个按钮在这个数组中添加数据(onclick 动作) 另一个按钮获取响应的编号(例如:onclick(2) response->7)

【问题讨论】:

  • 那么你有什么尝试?您是否搜索过“如何将对象添加到数组”或“如何监听点击事件”?
  • 是的,我没有找到任何东西,这就是我问的原因
  • 你的 HTML 是什么样的,你为按钮部分做了什么?代码的上下文是什么?
  • 我没有显示html,因为我要做的就是如何设置和获取数组对象的数据,如帖子的标题,然后我将自己将代码集成到html中跨度>

标签: javascript


【解决方案1】:

除了提供的信息不足之外,这可能会帮助您建立自己的

 var dataQuestions = [ {
        question : 1,
        response : 3,
    },{
        question : 2,
        response : 7,
    },{
        question : 3,
        response : 5,
    }];
    
function addQ(){
        var question = parseInt(document.getElementById("question").value);
    var response = parseInt(document.getElementById("response").value);
    dataQuestions.push(
        {
       question: question,
       response : response
      }
    )
    console.log(dataQuestions);
}

function getResp(){
    var getResp = parseInt(document.getElementById("getresponse").value);
  var res = dataQuestions.find(q=>q.question===getResp);
  console.log(res.response)
}
<label for="question">Question:</label>
<input type="text" id="question" ><br><br>
<label for="response">Reponse:</label>
<input type="text" id="response" >



<button onclick="addQ()">Add</button>

<br>
<br>
<label for="getresponse">Get Response of:</label>
<input type="text" id="getresponse" >

<button  onclick="getResp()">Get</button>

【讨论】:

  • 很高兴它帮助了你:)
【解决方案2】:

您应该尝试解决这个问题。 无论如何,这是一个简单的解决方案,可以满足您的要求:

let responses = []
document.getElementById("collect").addEventListener("click", () => {
  responses = [];
  for(let el of document.getElementsByClassName("answer")){
    responses.push({
        question: el.id,
        answer: el.value
    });
 }
 });
 
 document.getElementById("show").addEventListener("click", () => {
    const placeHolder = document.getElementById("answer_list");
    placeHolder.innerHTML = "";
    responses.forEach((r) => {
      placeHolder.innerHTML += `Question: ${r.question} Answer ${r.answer} <br>`;
    });
 });
<div>
  question 1: <input id="1" class="answer"/><br>
  question 2: <input id="2" class="answer"/><br>
  question 3: <input id="3" class="answer"/>
</div>
<div>
  <button id="collect">Collect answers</button> 
  <button id="show">Show answers</button> 
</div>
<div id="answer_list">
  
</div>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-18
    • 2021-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多