我正在使用React JS并且有一个多选小部件,我想获取所有选定的值并将每个值放在一个字符串数组中。我能够使用以下代码将所有选定的值放入逗号分隔的对象中:
[...event.target.options].filter(o => o.selected).map(o => o.value)
这会产生如下输出:value1, value3
我能够为每个值添加单引号,如下所示:
[...event.target.options].filter(o => o.selected).map(o => `'${o.value}`)
这会产生以下输出:'value1', 'value3'
但我不知道如何将结果变成数组 - 我想要这样的东西:
['value1','value3']
关于如何使用JS,最好是ES6的任何想法?
答案 0 :(得分:0)
您的代码似乎没有问题,导致意外结果的代码必须在其他地方发生。也许你在某个地方使用.join
。
document.querySelector("select").addEventListener(
"change",
e=>
console.log(
[...event.target.options]
.filter(o => o.selected)
.map(o => o.value)
)
);

<select multiple>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</seclect>
&#13;
答案 1 :(得分:-1)
看起来它已经是一个数组?
var event = {
target: {
options: [
{
value: 'value1',
selected: true
},
{
value: 'value2',
selected: true
},
{
value: 'value3',
selected: false
},
]
}
};
var output = [...event.target.options].filter(o => o.selected).map(o => `${o.value}`)
console.log(output);
console.log(Array.isArray(output));
&#13;