Javascript For循环未按预期运行?
我正在尝试创建一个过滤系统,允许用户输入价格,因此只有数组中价格较低的节日才会收到警报。然而,该节目却展示了所有的节日。 谢谢你的回复 代码:Javascript For循环未按预期运行?,javascript,html,Javascript,Html,我正在尝试创建一个过滤系统,允许用户输入价格,因此只有数组中价格较低的节日才会收到警报。然而,该节目却展示了所有的节日。 谢谢你的回复 代码: var=[ [“雷丁”,“里奇菲尔德大道”,205,“8月24日至26日”,“洛克”], [“公园生活”、“曼彻斯特”、140、“6月8日至9日”、“舞蹈”], [“格拉斯顿伯里”、“萨默塞特”、250、“6月23日至25日”、“备选方案”] ]; var filterfestivals=[[]]; var maxuserprice=document.
var=[
[“雷丁”,“里奇菲尔德大道”,205,“8月24日至26日”,“洛克”],
[“公园生活”、“曼彻斯特”、140、“6月8日至9日”、“舞蹈”],
[“格拉斯顿伯里”、“萨默塞特”、250、“6月23日至25日”、“备选方案”]
];
var filterfestivals=[[]];
var maxuserprice=document.getElementById(“maxprice”).value;
函数过滤器(){
对于(变量i=0;i<0.length;i++)
if(maxuserprice
请输入您的最高消费价格
过滤器
maxuserprice
将始终是初始值(''
)。您应该在filter函数中设置新的值,并且您应该首先清除筛选的数组,不要使用[[]]
,因为这并不意味着二维数组,它只会使用其第一个元素的空数组初始化数组
var filterfestivals = [];
function filter () {
filterfestivals = [];
var maxuserprice = Number(document.getElementById("maxprice").value);
for (var i = 0; i < festivals.length; i++) {
if (maxuserprice < festivals[i][2]){
filterfestivals.push(festivals[i])
}
}
}
var filterfestivals=[];
函数过滤器(){
filterfestivals=[];
var maxuserprice=Number(document.getElementById(“maxprice”).value);
对于(变量i=0;i<0.length;i++){
if(maxuserprice
您需要执行以下操作
- 将变量
和filterfestivals
移动到click函数中,因为这些变量需要具有最新值,而不是页面加载时的值李>maxuserprice
- 将
初始化为空数组filterfestivals
是一个字符串,应将其转换为数字。尽管在这种情况下,它仍然像在小于比较的情况下一样工作(maxuserprice
您应该在单击按钮时读取价格,否则在提供任何输入之前它会被初始化(您还应该将输入转换为数字) 您还需要在每个
调用上重置filter
数组,以便它们不会相加 最后,您当前的检查正好相反,它只允许那些价格高于输入的显示filterfestivals
//节日[x][0]城市[x][1]成本[x][2]日期[x][3]类型[x][4] 变量=[ [“雷丁”,“里奇菲尔德大道”,205,“8月24日至26日”,“洛克”], [“公园生活”、“曼彻斯特”、140、“6月8日至9日”、“舞蹈”], [“格拉斯顿伯里”、“萨默塞特”、250、“6月23日至25日”、“备选方案”] ]; var filterfestivals=[]; 函数过滤器(){ var maxuserprice=parseFloat(document.getElementById(“maxprice”).value); filterfestival=[]//清空filterfestival数组,以便我们可以进行多次筛选 对于(变量i=0;i<0.length;i++) 如果(maxuserprice>=Festival[i][2]){ filterfestivals.push(节日[i]) //i=i+1 } 警报(filterfestivals.join('\n')) }
的错误太多了,但这就是整个代码的工作原理 从编辑输入到JS中的几乎所有内容。只需仔细阅读并从中学习请输入您的最高消费价格
Filter<!DOCTYPE html> <html> <head> </head> <body> <p1> Please enter your maximum spending price </p1> <input type="number" id="maxprice"/> <button onclick = "filter()"> Filter </button> <script> // Festival[x][0] city[x][1] cost[x][2] date[x][3] genre[x][4] var festivals = [ ["Reading", "Richfield Avenue", 205, "24th - 26th August", "Rock"], ["Park Life", "Manchester", 140, "8th - 9th June", "Dance"], ["Glastonbury", "Somerset", 250, "23rd - 25th June", "Alternative"] ]; var filterfestivals = [[]]; function filter(){ filterfestivals = [[]]; var maxuserprice = document.getElementById("maxprice").value; for (var i = 0; i < festivals.length; i++) { if (festivals[i][2] < maxuserprice){ filterfestivals.push(festivals[i]) } } alert(filterfestivals) } </script> </body> </html>
请输入您的最高消费价格 滤器 //节日[x][0]城市[x][1]成本[x][2]日期[x][3]类型[x][4] 变量=[ [“雷丁”,“里奇菲尔德大道”,205,“8月24日至26日”,“洛克”], [“公园生活”、“曼彻斯特”、140、“6月8日至9日”、“舞蹈”], [“格拉斯顿伯里”、“萨默塞特”、250、“6月23日至25日”、“备选方案”] ]; var filterfestivals=[[]]; 函数过滤器(){ filterfestivals=[[]]; var maxuserprice=document.getElementById(“maxprice”).value; 对于(变量i=0;i<0.length;i++){ if(节日[i][2]