javascript es6逗号分隔对象到字符串数组中

时间:2018-02-01 02:48:15

标签: javascript reactjs ecmascript-6

我正在使用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的任何想法?

2 个答案:

答案 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;
&#13;
&#13;

答案 1 :(得分:-1)

看起来它已经是一个数组?

&#13;
&#13;
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;
&#13;
&#13;