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”布尔值“布尔(布尔(赋值选择)”这个对学习很有用“布尔(布尔(赋值选择)”这个对学习很有用