JavaScript-根据每种情况,生成数组
我的最后一个问题是不使用布尔语跑步一次。我决定我需要布尔值,但不需要太多变量,因为那样会很混乱 假设我有这个:JavaScript-根据每种情况,生成数组,javascript,jquery,html,Javascript,Jquery,Html,我的最后一个问题是不使用布尔语跑步一次。我决定我需要布尔值,但不需要太多变量,因为那样会很混乱 假设我有这个: var counter = 0; $(function() { $('#typing').keyup(function() { switch($(this).val().toLowerCase()) { case 'test': // DO THIS EVERYTIME TEST CASE IS CALLED
var counter = 0;
$(function() {
$('#typing').keyup(function() {
switch($(this).val().toLowerCase()) {
case 'test':
// DO THIS EVERYTIME TEST CASE IS CALLED
$('#test').fadeOut("fast", function() {
$(this).html("<span class='green'>That's correct!</span>").fadeIn("fast");
});
// DO THIS ONCE AND ONLY ONCE
count++;
}
});
});
var计数器=0;
$(函数(){
$('#typing').keyup(函数(){
开关($(this.val().toLowerCase()){
案例“测试”:
//每次调用测试用例时都执行此操作
$('#test')。淡出(“快速”,函数(){
$(this.html(“正确!”).fadeIn(“快速”);
});
//只做一次
计数++;
}
});
});
基本上,它是“完成百分比”应用程序的一部分,用户尝试键入我提供的所有案例。因此,如果用户输入两次测试。。。在第一次运行casetest
时,它将向计数器添加1,但在第二次运行casetest
时,它不会向计数器添加1
我不想在每种情况下都增加很多布尔值,因为那样会很麻烦
明白了吗?:)
我的想法是制作一个数组,根据我添加的每个案例,它会将所有内容添加到一起。所以数组[0]将是casetest
。然后,在第一次尝试时,我将数组[0]设置为1。。然后在每个case数组上创建一个FOR-LOOP,将其相加为total。这是个好主意
唯一的问题是我不知道如何创建每格数组。一个简单的方法是使用对象文字作为计数器变量,一旦命中一个大小写,就指定值
true
:
var counter = {};
...
case 'test' : counter[$(this).val()] = true;
或者,检查“案例”是否已存储在普通的旧钻孔阵列中:
var counter = [];
...
case 'test' :
if(!$.inArray($(this).val(), counter)) {
counter.push($(this).val());
}
按照你的要求做:
var validKeys = ['test', 'testing', '1337'];
var checkedKeys = {};
function getCount() {
var counter = 0;
$.each(validKeys, function(index, value) { //jQuery.each, for neat array iteration
if(checkedKeys[value])
counter++;
});
return counter;
}
$(function() {
$('#typing').keyup(function() {
var val = $(this).val().toLowerCase();
if(val == 'test') { //neater than a switch statement, often
// DO THIS EVERYTIME TEST CASE IS CALLED
$('#test').fadeOut("fast", function() {
$(this).html("<span class='green'>That's correct!</span>").fadeIn("fast");
});
}
checkedKeys[val] = true;
});
});
var validKeys=['test','testing','1337'];
var checkedKeys={};
函数getCount(){
var计数器=0;
$.each(validKeys,函数(索引,值){//jQuery.each,用于整洁数组迭代
如果(选中键[值])
计数器++;
});
返回计数器;
}
$(函数(){
$('#typing').keyup(函数(){
var val=$(this.val().toLowerCase();
if(val=='test'){//n比switch语句更简洁,通常
//每次调用测试用例时都执行此操作
$('#test')。淡出(“快速”,函数(){
$(this.html(“正确!”).fadeIn(“快速”);
});
}
checkedKeys[val]=真;
});
});
哦,我明白了。那么,对于每一个真实的案例,我该如何把所有的案例加起来呢?@Dan-我以为你说你实际上不想统计事件,而只是简单地承认它们?我错了吗?数组中的每一个例子都是正确的。。。我想把它们加起来。这是有道理的吗?好吧,那我怎么加起来才能得到总数呢?@Dan-上面的代码确实把总数加起来了(据我所知)。