代码之家  ›  专栏  ›  技术社区  ›  Tintin81

如何使用ES6语法将select选项的值转换为简单数组?

  •  1
  • Tintin81  · 技术社区  · 6 年前

    我有很多选择,比如:

    const options = document.querySelectorAll('select option');
    

    我怎么能只转 价值观 将这些选择选项放入一个简单的数组中?

    const array = Array.from(options);
    

    NodeList (请纠正我,如果我在这里混淆的东西)和包含太多的信息。

    我真正需要的是一个简单的选项值数组,比如 [3, 5, 2] .

    <select>
       <option value="3">Alpha</option>
       <option value="5">Beta</option>
       <option value="2">Gamma</option>
    </select>
    

    我想使用最新的ES6语法。

    3 回复  |  直到 6 年前
        1
  •  2
  •   Nina Scholz    6 年前

    Array.from .

    const
        options = document.querySelectorAll('select option'),
        array = Array.from(options, ({ value }) => value);
    
    console.log(array);
    <select>
       <option value="3">Alpha</option>
       <option value="5">Beta</option>
       <option value="2">Gamma</option>
    </select>
        2
  •  1
  •   baao    6 年前

    Array.from 不会从传递给它的每个对象中神奇地提取属性。为了得到数值, map 在你得到的HTMLElements数组上

    const values = Array.from(options).map(e => e.value);