Javascript返回条件
我正在尝试使用输入搜索和按钮/标志组合过滤列表。我对输入搜索功能过滤和返回列表没有问题。我遇到的问题是,在搜索输入中使用布尔标志,以便更准确地确定要过滤的内容,但在这种情况下,我遇到了一个问题,即如何使用条件/布尔返回结果。我似乎不能在两个过滤器都应用的情况下混合使用返回的两个条件。我试过这样的Javascript返回条件,javascript,javascript-objects,Javascript,Javascript Objects,我正在尝试使用输入搜索和按钮/标志组合过滤列表。我对输入搜索功能过滤和返回列表没有问题。我遇到的问题是,在搜索输入中使用布尔标志,以便更准确地确定要过滤的内容,但在这种情况下,我遇到了一个问题,即如何使用条件/布尔返回结果。我似乎不能在两个过滤器都应用的情况下混合使用返回的两个条件。我试过这样的返回通道.indexOf(aislelection)>-1&&(分配)?assignedTo==currentUserId:(未分配)?assignedTo==null:[]但我似乎已经走远了。例如,如果
返回通道.indexOf(aislelection)>-1&&(分配)?assignedTo==currentUserId:(未分配)?assignedTo==null:[]
但我似乎已经走远了。例如,如果已分配/未分配标志中的任何一个处于活动状态,它将添加这两个过滤器中的一个过滤器assignedTo===currentUserId
或assignedTo==null
与过道过滤器一起进行过滤,这样它们也可以一起工作,而不是一个或另一个
不寻找为我写的解决方案,更多的是关于如何处理这个过滤,不仅仅是一个输入,还有可能关闭更多正在使用的过滤器
任何帮助/提示都将不胜感激在返回之前完成此功能,然后针对每个条件使用不同的返回语句 而不是
searchList(array, filters) {
var currentUserId = 125;
var list = array;
// array example [{aisle: A9, userid: 125},{aisle: B2, userid: null},{aisle: C#, userid: 125}]
// filters example {assignedButtonActive: true, unassignedButtonActive: false, aisle: A9}
result = Object.keys(list)
.map((key) => {
return { ...list[key] };
})
.filter((data) => {
// If assigned or unassigned buttons are not active, this filter doesnt apply and aisle should be the only thing filtering
let assigned = filters.assignedButtonActive
let unassigned = filters.unassignedButtonActive
let aisleSelection = filter.aisle;
let aisle = data.aisle;
let userid = data.userid;
return aisle.indexOf(aisleSelection) > -1 // Need a conditional to also filter out assigned/unassigned if the buttons are active, otherwise not needed.
});
return result;
}
试一试
对数组中的每个元素调用filter,如果回调函数返回true,则决定保留该元素在返回之前完成该函数,然后对每个条件使用不同的返回语句 而不是
searchList(array, filters) {
var currentUserId = 125;
var list = array;
// array example [{aisle: A9, userid: 125},{aisle: B2, userid: null},{aisle: C#, userid: 125}]
// filters example {assignedButtonActive: true, unassignedButtonActive: false, aisle: A9}
result = Object.keys(list)
.map((key) => {
return { ...list[key] };
})
.filter((data) => {
// If assigned or unassigned buttons are not active, this filter doesnt apply and aisle should be the only thing filtering
let assigned = filters.assignedButtonActive
let unassigned = filters.unassignedButtonActive
let aisleSelection = filter.aisle;
let aisle = data.aisle;
let userid = data.userid;
return aisle.indexOf(aisleSelection) > -1 // Need a conditional to also filter out assigned/unassigned if the buttons are active, otherwise not needed.
});
return result;
}
试一试
对数组中的每个元素调用filter,如果回调函数返回true,则决定保留该元素。在这种情况下,我使用常用的括号来显示不等式的各个部分。范例
if (aisle.indexOf(aisleSelection) > -1) {
return true}
else if (other possibility){
return true}
else (case to filter out){
return false}
但也许
return aisle.indexOf(aisleSelection) > -1 && (assigned) ? assignedTo == currentUserId : ((unassigned) ? assignedTo == null : [])
我可能误解了必要的条件。如果你更详细地描述这些条件,答案会更准确。在这种情况下,我用常用的括号来表示不等式的各个部分。范例
if (aisle.indexOf(aisleSelection) > -1) {
return true}
else if (other possibility){
return true}
else (case to filter out){
return false}
但也许
return aisle.indexOf(aisleSelection) > -1 && (assigned) ? assignedTo == currentUserId : ((unassigned) ? assignedTo == null : [])
我可能误解了必要的条件。如果您更详细地描述条件,答案将更准确。根据我所了解的内容,按照此代码进行操作,尤其是我所评论的部分,然后让我知道这是否是您想要的。如果你不明白,请告诉我
return assignedTo = (aisle.indexOf(aisleSelection) > -1 && (assigned) ? currentUserId : ((unassigned) ? null : []))
根据我所了解的情况,仔细阅读这段代码,特别是我评论的部分,然后让我知道这是否是你想要的。如果你不明白,请告诉我
return assignedTo = (aisle.indexOf(aisleSelection) > -1 && (assigned) ? currentUserId : ((unassigned) ? null : []))
你能解释一下问题的最后一部分吗。这部分“我似乎不能在两个过滤器都应用的情况下混合返回的两个条件”。。。您的预期结果是什么?例如,如果已分配/未分配标志处于活动状态,它将添加这两个过滤器中的一个(assignedTo==currentUserId或assignedTo==null)与过道过滤器一起进行过滤,这样它们也可以一起工作,你不能澄清/重新措辞问题的最后一部分。这部分“我似乎不能在两个过滤器都应用的情况下混合返回的两个条件”。。。您的预期结果是什么?例如,如果已分配/未分配标志处于活动状态,它将添加这两个过滤器中的一个(assignedTo===currentUserId或assignedTo==null)与过道过滤器一起进行过滤,这样它们也可以一起工作,而不是一个或另一个“filter在数组中的每个元素上被调用,如果回调函数返回true,则决定保留该元素”这是我不知道的,并且非常有用。“Thank you”filter在数组中的每个元素上被调用,并且如果回调函数返回true,则决定保留该元素“这是我不知道的,非常有用。Thank you”布尔值“布尔(布尔(赋值选择)”这个对学习很有用“布尔(布尔(赋值选择)”这个对学习很有用