【问题标题】:How to make Javascript filter value based on dynamic key如何根据动态键制作Javascript过滤器值
【发布时间】:2020-12-30 14:14:38
【问题描述】:

我有一个记录,需要根据提供的键对其进行过滤并保存到另一个数组。所以通常我们会这样做..

let date = [];
date.push(data.filter(e => e.date).map(e => e.date));

这将在新日期数组中为我提供['2020-09-12','2020-09-12','2020-09-12','2020-09-12'] 的数据。所以现在我需要过滤掉新数组的动态键。它基于每日、每周、每月,看起来像这样..(手动执行现在..)

如果用户选择每日数据..

let newArray30, newArray20, newArray10= [];
newArray30.push(data.filter(e => e.d_dy_30).map(e => e.d_dy_30));
newArray20.push(data.filter(e => e.d_dy_20).map(e => e.d_dy_20));
newArray10.push(data.filter(e => e.d_dy_10).map(e => e.d_dy_10));

如果用户选择每周数据..

let newArray30, newArray20, newArray10= [];
newArray30.push(data.filter(e => e.d_wk_30).map(e => e.d_wk_30));
newArray20.push(data.filter(e => e.d_wk_20).map(e => e.d_wk_20));
newArray10.push(data.filter(e => e.d_wk_10).map(e => e.d_wk_10));

如果用户选择每月数据..

let newArray30, newArray20, newArray10= [];
newArray30.push(data.filter(e => e.d_mt_30).map(e => e.d_mt_30));
newArray20.push(data.filter(e => e.d_mt_20).map(e => e.d_mt_20));
newArray10.push(data.filter(e => e.d_mt_10).map(e => e.d_mt_10));

我将有 10 行,每行“每天、每周、每月、每季度、每年”

我想让它像这样动态..

n30Data.push(data.filter(e =>e.this.getNaming(period,code)).map(e =>e.this.getNaming(period,code)))
//ofcourse this is error



  getNaming(period, code){

    return 'd'_'+period+'_'+code+'';
    
  }

我怎样才能实现上述目标?

【问题讨论】:

    标签: javascript arrays reactjs filter javascript-objects


    【解决方案1】:

    这将根据动态filterName 键过滤结果:

    function getNaming(period, code){
    
        return 'd_' + period + '_' + code;
        
      }
    
    var filterName = getNaming(period,code);
    n30Data.push(data.filter(e => e[filterName]).map(e => e[filterName])
      
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-03-17
      • 2019-03-18
      • 1970-01-01
      • 1970-01-01
      • 2019-08-21
      • 2015-05-09
      • 1970-01-01
      相关资源
      最近更新 更多