You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript中如何将多选select选中值与文本转为键值数组

解决多选Select选中项转键值对对象的问题

嘿,我来帮你搞定这个需求!你想要把多选select的选中项转成{value: text}的键值对结构,之前的代码问题出在map的返回值上——你写的[value=>text]是创建了一个包含箭头函数的数组,根本不是我们需要的键值对形式,自然得不到预期的对象。

给你两种靠谱的实现方式:

方法一:用map + Object.fromEntries(简洁写法)

这种方式先通过map把每个选中项转成[value, text]的数组,再用Object.fromEntries把二维数组直接转成对象:

let selected_size = Object.fromEntries(
  $(this).find(":selected").map(function(i, el) {
    return [$(el).val(), $(el).text()];
  }).get()
);
  • 解释:.get()会把jQuery的map结果转成普通JavaScript数组,Object.fromEntries()是ES2019的方法,专门用来把[key, value]形式的二维数组转换成对象,非常适合这个场景。

方法二:用each循环构建对象(直观易懂)

如果你觉得上面的方法有点抽象,用each循环一步步构建对象会更清晰:

let selected_size = {};
$(this).find(":selected").each(function(i, el) {
  const value = $(el).val();
  const text = $(el).text();
  selected_size[value] = text;
});
  • 解释:先初始化一个空对象,然后遍历每一个选中的选项,把选项的value作为对象的键,text作为对应的值,逐个添加到对象里。

这两种方法都能得到你想要的{1:"red",2:"green"}这种结构,选哪个看你的习惯就好~

内容的提问来源于stack exchange,提问作者Gaurav

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 14:37:29