gpt4 book ai didi

javascript - 从数组中删除一个元素,然后在不使用全局变量的情况下保留其状态以备将来使用

转载 作者:行者123 更新时间:2023-11-30 12:52:45 26 4
gpt4 key购买 nike

假设我有一个定义如下的数组:

var str = ['H', 'e', 'l', 'l', 'o'];

我有一个按钮,当用户点击它时,应该删除字符串的第一个元素并在删除后返回结果数组(即 ['e', 'l', 'l', ' o']).结果数组也应该保存,下次按下按钮时,数组中的下一个元素将被删除(即结果数组将是 ['l', 'l', 'o']) 等等,直到删除所有元素。

如果数组是全局的,这就非常简单了:

var str = ['H', 'e', 'l', 'l', 'o'];

function remove_first(the_array) {
the_array.shift();
return the_array;
}

del.onclick = function() {
result = remove_first(str);
}

但我想在不使数组成为全局数组的情况下执行此操作。你会怎么做?

最佳答案

您必须在事件处理程序之外定义数组,因为它必须在事件处理程序的调用之间持续存在。

但是您不必在全局范围内定义数组或函数来使它工作,任何共享范围都可以。所以你可以使用 IIFE创建新范围:

(function() {

var str = ['H', 'e', 'l', 'l', 'o'];

function remove_first(the_array) {
the_array.shift();
return the_array;
}

del.onclick = function() {
var result = remove_first(str); // don't forget `var` here
}

}());

关于javascript - 从数组中删除一个元素,然后在不使用全局变量的情况下保留其状态以备将来使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20370248/

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