Javascript express.js中的数组foreach错误
我想为我的网站生成动态搜索。解析查询字符串后,我使用req.query获取JS对象。我在foreach遇到了名称可变的价格问题。 网址是: 错误消息是: [‘1’、‘2’] 价值:1 值:未定义 {'$or':未定义,性别:{'$in':['men','women']}Javascript express.js中的数组foreach错误,javascript,arrays,express,Javascript,Arrays,Express,我想为我的网站生成动态搜索。解析查询字符串后,我使用req.query获取JS对象。我在foreach遇到了名称可变的价格问题。 网址是: 错误消息是: [‘1’、‘2’] 价值:1 值:未定义 {'$or':未定义,性别:{'$in':['men','women']} 未定义的为什么得到{'$or':未定义的,…} 您正在这样做: query.$or = price.forEach(...) 但是作为。所以,这很正常。你应该改用。它将返回一个包含两个元素的新数组: query.$or =
未定义的为什么得到
{'$or':未定义的,…}
您正在这样做:
query.$or = price.forEach(...)
但是作为。所以,这很正常。你应该改用。它将返回一个包含两个元素的新数组:
query.$or = price.map(...)
为什么得到值:未定义
您使用的是currentarray
参数,但这不是您得到的数组,而是当前价格。因此,在您的示例中,currentarray[1]
等于'2'[1]
,即未定义的
可能的解决方案
如果这样编写,您的代码会更简单:
query.$or = price.map(function (currentPrice) {
switch(currentPrice) {
case '1': return {'price': {'$gte': 0 , '$lte': 100} };
case '2': return {'price': {'$gte': 100 , '$lte': 150} };
case '3': return {'price': {'$gte': 150 , '$lte': 200} };
case '4': return {'price': {'$gte': 200 , '$lte': 1000}};
default : return {};
}
});
为什么得到{'$or':未定义,…}
您正在这样做:
query.$or = price.forEach(...)
但是作为。所以,这很正常。你应该改用。它将返回一个包含两个元素的新数组:
query.$or = price.map(...)
为什么得到值:未定义
您使用的是currentarray
参数,但这不是您得到的数组,而是当前价格。因此,在您的示例中,currentarray[1]
等于'2'[1]
,即未定义的
可能的解决方案
如果这样编写,您的代码会更简单:
query.$or = price.map(function (currentPrice) {
switch(currentPrice) {
case '1': return {'price': {'$gte': 0 , '$lte': 100} };
case '2': return {'price': {'$gte': 100 , '$lte': 150} };
case '3': return {'price': {'$gte': 150 , '$lte': 200} };
case '4': return {'price': {'$gte': 200 , '$lte': 1000}};
default : return {};
}
});
你用什么做前端?你用什么做前端?