Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 根据输入的数字是否大于、小于或等于动态生成if-else_Javascript_Jquery - Fatal编程技术网

Javascript 根据输入的数字是否大于、小于或等于动态生成if-else

Javascript 根据输入的数字是否大于、小于或等于动态生成if-else,javascript,jquery,Javascript,Jquery,我有以下格式的数据: HTML: 我正在尝试动态生成if-else,这样,如果用户输入26000,它应该通过相应地检测符号属性来给我Result=3 上面的结构是动态的,所以我不能使用静态的if-else条件 这是你的电话号码 请提供帮助。这可以通过使用以字符串形式执行JavaScript代码的函数来实现 请尝试从以下代码中理解: var userval=26000; $(“.data table”).find(“*”).each(function(){ var val=$(this.attr

我有以下格式的数据:

HTML:

我正在尝试动态生成if-else,这样,如果用户输入26000,它应该通过相应地检测符号属性来给我Result=3

上面的结构是动态的,所以我不能使用静态的if-else条件

这是你的电话号码

请提供帮助。

这可以通过使用以字符串形式执行JavaScript代码的函数来实现

请尝试从以下代码中理解:

var userval=26000;
$(“.data table”).find(“*”).each(function(){
var val=$(this.attr(“val”);
var c=$(this.attr(“符号”);
var exec=`${userval}${c}${val}`;
console.log(exec);
console.log(eval(exec));
如果(评估(执行)){
$(this).text(userval);
}
});

您编写的代码实际上并没有满足您的问题要求(@RiteshKhandekar的答案满足您的要求)。如果您假设括号按升序排列,那么代码可以工作,但它可能不是最好的。您的需求实际上似乎更接近于“查找排序数组中的最后一个元素,该数组小于某些动态选择的目标”

因为您说过您的结构是动态创建的,所以编写检查每种可能性的代码是行不通的。您需要构建能够处理任意数据的东西。您可以通过以下方式来实现:

//二进制搜索实现,因为数据已排序
最后一个函数(数组、目标)
{  
让我们开始=0
设end=array.length-1;
设指数=-1;
而(开始=目标){
结束=中间-1;
}  
否则{
指数=mid;
开始=中间+1;
}  
}  
回报指数
}
设divs=$(“.data table>div”)
让值=[]
//从HTML中的一组值生成一个数组
divs.each(函数(){
values.push(parseInt(this.getAttribute('val'))
})
//查找最后一个小于目标值的索引
让索引=最后一个(值26000)
//为索引==-1添加错误检查
//对索引做些什么
console.log(divs.get(index.getAttribute('result'))


所以。。。像
operations={'=':(x,y)=>x>=y,…}
这样的东西可能会起作用<代码>如果(操作[符号](a,b))…
您至少应该自己尝试解决这个问题。如果你做不到,展示你的尝试,并解释你遇到的问题。有人会帮忙的。嘿,谢谢你的建议,我已经想出了一个解决办法。有没有更好的办法?唯一的问题是使用
eval()
。见和。考虑将映射从“符号”添加到某种方法。
<div class="data-table">
  <div class="data-table-item" sign="<" val="10000" result="1"></div>
  <div class="data-table-item" sign=">=" val="10000" result="2"></div>
  <div class="data-table-item" sign=">=" val="25000" result="3"></div>
  <div class="data-table-item" sign=">=" val="50000" result="4"></div>
</div>
var user_Value = 26000;