Javascript 通过传递参数更新“[].forEach.call()”内的值
如何摆脱有线Javascript 通过传递参数更新“[].forEach.call()”内的值,javascript,Javascript,如何摆脱有线[].forEach.call(计数器、函数(计数器){… part或将参数传递给它以更新计数器 代码在[].forEach.call(…中有一个函数,它将新值设置到名为setValue(currentValue);的计数器中。我无法找到访问setValue()并传递新参数的方法 我想使用普通函数通过传递参数来更新值,如下所示: function update(newValue){ // everything goes here }; 下面是原始代码(当然,您只需要修改JS!),在
[].forEach.call(计数器、函数(计数器){…
part或将参数传递给它以更新计数器
代码在[].forEach.call(…
中有一个函数,它将新值设置到名为setValue(currentValue);
的计数器中。我无法找到访问setValue()
并传递新参数的方法
我想使用普通函数通过传递参数来更新值,如下所示:
function update(newValue){
// everything goes here
};
下面是原始代码(当然,您只需要修改JS!),在这段代码中,我使用setTimeout来更新计数器:
let counters=document.getElementsByClassName('number-ticker');
让defaultDigitNode=document.createElement('div');
defaultDigitNode.classList.add('digit');
for(设i=0;i<11;i++){
defaultDigitNode.innerHTML+=i+'
';
}
[]forEach.call(计数器、函数(计数器){
设d=defaultDigitNode.cloneNode(true);
让数字=计数器。追加子项(d);
让currentValue=10;//设置初始值
设置值(当前值);
//更新值
setTimeout(函数(){
设定值(9);
}, 1000)
函数设置值(数字){
digit.style.marginTop='-'+数字+em';
}
});
:根目录{
背景色:#555;
颜色:白色;
字体大小:25vh;
字体系列:Roboto Light;
}
身体,
html{
保证金:0;
身高:100%;
}
.集装箱{
显示器:flex;
证明内容:中心;
对齐项目:居中;
身高:100%;
}
.数字自动售票机{
溢出:隐藏;
高度:1米;
背景色:#333;
盒影:0.05em黑色镶嵌;
}
.数字滴答器.数字{
浮动:左;
线高:1;
过渡:利润率最高1.75秒;
右边框:1px实心#555;
填充:0.075em;
文本对齐:居中;
}
数字记录器
我认为您的解决方案设计过度,以下是我的建议:
我正在使用Array.from和Array.keys生成一个数组,并对其执行for
循环。在我的for
循环中,我正在运行setTimeout
来更新我的计数器
函数设置值(数字){
让digit=document.getElementsByCassName('digit')[0];
digit.innerHTML=数字;
}
常数currentValue=10;
数组.from(数组(currentValue).keys()).reverse().forEach(函数(编号,索引){
setTimeout(函数(){
设置值(数字+1,索引);
},指数*1000);
});
:根目录{
背景色:#555;
颜色:白色;
字体大小:25vh;
字体系列:Roboto Light;
}
身体,
html{
保证金:0;
身高:100%;
}
.集装箱{
显示器:flex;
证明内容:中心;
对齐项目:居中;
身高:100%;
}
.数字自动售票机{
溢出:隐藏;
高度:1米;
背景色:#333;
盒影:0.05em黑色镶嵌;
}
.数字滴答器.数字{
浮动:左;
线高:1;
过渡:利润率最高1.75秒;
右边框:1px实心#555;
填充:0.075em;
文本对齐:居中;
}
数字记录器
你能解释一下你想用[].forEach.call实现什么吗?
我希望你能告诉我:)据我所知,调用Array.prototype.forEach.call
是一种更简单的方法,它将计数器
作为值传递给forEach
函数。之所以这样做,是因为getElementsByClassName
本身没有forEach
方法,但会使用它。这是什么问题就在这里?有点unclear@adiga我们只能在代码中的[].forEach.call()
内部更新并将参数传递给setValue
。如果我们想在[].forEach.call()
外部更新setValue
,那该怎么办呢?谢谢你的回答……但是那些动画和东西呢。。。