微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决将多个选定的值和文本作为数组传递

我有一个选择字段,从中可以选择多个数据。现在,我想以键和数组之类的值来访问该值。

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

我想这样访问选择值:

[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中,对象通常用于存储键/值对。
这是一个使用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>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。