如何将当前选项值放入数组中?

How do I get the current option values into an array?

假设我有一个列表:

    <select>
  <option value="Horse">Horse</option>
  <option value="Bird">Bird</option>
  <option value="Dogs">Dogs</option>
  <option value="Cats">Cats</option>
</select>

我知道如何通过循环获取每个选项的值。我的问题是,如果满足某些条件,我的代码会将默认值更改为某些内容,但如果不满足条件,我需要恢复为默认值。我需要将默认值放入一个数组中,这样我就可以在不满足条件时使用它们恢复原状……等等。我需要纯 javascript 没有框架。

因此,例如,如果我将 <option value="Horse">Horse</option> 更改为 <option value="Train">Train</option>,我需要能够在更改之前存储 <option value="Horse">Horse</option>,就像您可以获取输入的默认值一样字段以在需要时还原为它。

使用以下代码:

var options = document.querySelectorAll("option");
var optionsArray = Array.prototype.map.call(options, function(x) {
  return x.value;
});
<select>
  <option value="Horse">Horse</option>
  <option value="Bird">Bird</option>
  <option value="Dogs">Dogs</option>
  <option value="Cats">Cats</option>
</select>

我找到了解决方案,那就是在页面加载时获取值并确保您的脚本位于结束正文标记之前。