gpt4 book ai didi

javascript - 如何在 else 语句中设置变量值不变?

转载 作者:行者123 更新时间:2023-11-27 22:55:33 25 4
gpt4 key购买 nike

考虑这个简单的下拉菜单案例:arg 的值最初是 ['a', 'b', 'c'],一旦选择了橙色选项,arg 设置为 ['a', 'b'] 并且不会改回来,除非重新定义 arg。在单击橙色以外的选项时选择下拉菜单选项之前,我想将 arg 重置为其状态。

我的问题是,在我的真实代码中,在选择该选项之前,arg 是由一个复杂的逻辑定义的,因此无法通过显式重写 else< 中的所有逻辑来重置 条件。有没有办法做 else {//将 arg 重置为下拉之前的状态 }

let arg = ['a', 'b', 'c'];

$('#dropdown').change(function () {
if ($('#dropdown').val() === 'orange') {
arg = ['a', 'b'];
console.log(arg);
}
else {
// can I reset value of arg to ['a', 'b', 'c'] without explicitly doing arg=['a', 'b', 'c']?
// something like arg.reset()
console.log(arg);
};
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select id='dropdown'>
<option value='apple'>apple</option>
<option value='orange'>orange</option>
<option value='pear'>pear</option>
</select>

最佳答案

您可以将数组(及其偏差)存储为选项的数据属性:

// Prepare...
let arr = ["a", "b", "c"];
$('#dropdown option').data("choices", arr)
.filter('[value="orange"]').data("choices", ["a", "b"]);

$('#dropdown').change(function () {
arr = $(":selected", this).data("choices"); // just grab
console.log(arr);
}).trigger("change");
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select id='dropdown'>
<option value='apple'>apple</option>
<option value='orange'>orange</option>
<option value='pear'>pear</option>
</select>

关于javascript - 如何在 else 语句中设置变量值不变?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59268694/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com