将它们全部单独输出到控制台后,如何创建一组项目?

Posted

技术标签:

【中文标题】将它们全部单独输出到控制台后,如何创建一组项目?【英文标题】:How do I create an array of items after outputting them all individually to the console? 【发布时间】:2021-08-31 08:12:42 【问题描述】:

正如您现在所看到的,代码的结果是将选项列表的每个值输出到控制台。但是我希望它们被分组到一个数组变量中,而不是一个一个输出它的代码。任何帮助表示赞赏,谢谢!

(function($)
   $('.request-poc').attr('href', function() 
      var product = $(this).attr("data-product");
      return this.href + '?product=' + product;
   );
   if ($('body.request-poc').length > 0)
   
      function GetURLParameter(sParam)
      
         var sPageURL = window.location.search.substring(1);
         var sURLVariables = sPageURL.split('&');
         for (var i = 0; i < sURLVariables.length; i++)
         
               var sParameterName = sURLVariables[i].split('=');
               if (sParameterName[0] == sParam)
            
               return sParameterName[1];
            
         
      
      var product = GetURLParameter('product');
      console.log(product)
      $('#product').val(product);
   

   Array.from(document.querySelector("#product").options).forEach(function(option_element) 
      let option_value = option_element.value;
      console.log(option_value);
  ); 

)(jQuery);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<body class='request-poc'>

    <h1>Dummy</h1>

    <form action="#">
        <select name="Select product" id="product">
            <option value="SHOES">Shoes</option>
            <option value="SHIRT">Shirt</option>
            <option value="JUMPER">Jumper</option>
            <option value="SOCKS">Socks</option>
            <option value="JEANS">Jeans</option>
            <option value="OTHER">Other</option>
        </select>
    </form>

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
    <script src="script.js"></script>
</body>

【问题讨论】:

您的问题确实与控制台无关。这只是一种干扰。 【参考方案1】:

您可以声明一个空数组并将所有选项压入其中。

(function ($) 
  $(".request-poc").attr("href", function () 
    var product = $(this).attr("data-product");
    return this.href + "?product=" + product;
  );

  if ($("body.request-poc").length > 0) 
    function GetURLParameter(sParam) 
      var sPageURL = window.location.search.substring(1);
      var sURLVariables = sPageURL.split("&");
      for (var i = 0; i < sURLVariables.length; i++) 
        var sParameterName = sURLVariables[i].split("=");
        if (sParameterName[0] == sParam) 
          return sParameterName[1];
        
      
    
    var product = GetURLParameter("product");
    console.log(product);
    $("#product").val(product);
  

  const arr = [];
  Array.from(document.querySelector("#product").options).forEach(function (
    option_element
  ) 
    arr.push(option_element.value);
  );
  console.log(arr);
)(jQuery);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<body class='request-poc'>

    <h1>Dummy</h1>

    <form action="#">
        <select name="Select product" id="product">
            <option value="SHOES">Shoes</option>
            <option value="SHIRT">Shirt</option>
            <option value="JUMPER">Jumper</option>
            <option value="SOCKS">Socks</option>
            <option value="JEANS">Jeans</option>
            <option value="OTHER">Other</option>
        </select>
    </form>

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
    <script src="script.js"></script>
</body>

【讨论】:

正是我想要的,谢谢你的帮助!完全按预期工作。非常感谢!【参考方案2】:

你能不能在你的 foreach 循环之外设置一个空数组,然后在循环中推送它

示例将是(未测试)

var test =[]   
Array.from(document.querySelector("#product").options).forEach(function(option_element) 
      let option_value = option_element.value;
      console.log(option_value);
      test.push(option_value)
  ); 

【讨论】:

以上是关于将它们全部单独输出到控制台后,如何创建一组项目?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 testflight 上创建一组测试人员

如何快速创建一组用户默认值?

如何创建一组自定义对象(Swift)?

如何创建一组复仇者联盟图标

如何基于模型类的属性创建一组控件

根据“调整后的 group_by”创建一列 - R