将多个选定的值和文本作为数组传递 javascript

Pass multiple selected value and text as an array javascript

我有 select 个字段,我可以从中 select 多个数据。现在我想像数组一样访问该值作为键和值。

let selected_size = $(this).find(":selected").map(function(i, el) {
    var value = $(el).val();
    var text = $(el).text();
}).get();

我想像这样访问 select 值:

[1=>red,2=>green]

数字将是颜色的实际值。

我试过:

let selected_size = $(this).find(":selected").map(function(i, el) {
     var value = $(el).val();
     var text = $(el).text();
     return [value=>text]
}).get();

但这似乎不起作用。

在JavaScript中,对象通常用于存储Key/value对
这是一个使用 JS 的 Array.prototype.reduce()

的例子

$("select[multiple]").on("input", function() {

  const data = $(this).find(":selected").get().reduce((ob, el) => {
    ob[el.value] = el.textContent;
    return ob
  }, {});
  
  console.log(data);

});
<select multiple>
  <option value="1">Red</option>
  <option value="2">Blue</option>
  <option value="3">Green</option>
</select>

<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>