【问题标题】:Get specific data from array and put in other array从数组中获取特定数据并放入其他数组
【发布时间】:2023-03-26 01:19:02
【问题描述】:

我在 javascript 中有这个结果,我想获取值超过 3 的数据,我想放入其他数组。

"availableDates": {
  "2020-01-24": 1,
  "2020-01-23": 3,
  "2020-01-22": 2,
  "2020-01-21": 1,
  "2020-01-25": 4,
  "2021-01-07": 1
}

我在这里分组:

const formattedDate = x.reduce((acc,el) => {
  const date = el.split(" ")[0];
  acc[date] = (acc[date] || 0) + 1;
  return acc;
}, {});

现在我想将值超过 3 的所有日期放入其他数组中。例如

newarray = [ "2020-01-23", "2020-01-25" ]

【问题讨论】:

    标签: javascript arrays object filter javascript-objects


    【解决方案1】:

    为什么不在"availableDates" 的键上使用简单的.filter()

    const grouped =  {
      "availableDates": {
          "2020-01-24": 1,
          "2020-01-23": 3,
          "2020-01-22": 2,
          "2020-01-21": 1,
          "2020-01-25": 4,
          "2021-01-07": 1
      }
    };
    
    const newArray = Object.keys(grouped.availableDates).filter((key) => grouped.availableDates[key] >= 3);
    
    console.log(newArray);

    【讨论】:

      【解决方案2】:

      您可以简单地使用for...in 循环来迭代对象键并过滤它们:

      const data = {
        "2020-01-24": 1,
        "2020-01-23": 3,
        "2020-01-22": 2,
        "2020-01-21": 1,
        "2020-01-25": 4,
        "2021-01-07": 1
      };
      
      const reducer = (obj, val) => {
        const result = [];
      
        for(key in obj) {
          if(obj[key] >= val)
            result.push(key);
        };
        
        return result;
      };
      
      console.log(reducer(data, 3));

      【讨论】:

        【解决方案3】:

        你可以有这样的东西。我写了一大堆代码,让你能够复制/过去测试

        var availableDates = new Array()
        var availableDates =  {
                "2020-01-24": 1,
                "2020-01-23": 3,
                "2020-01-22": 2,
                "2020-01-21": 1,
                "2020-01-25": 4,
                "2021-01-07": 1
            }
        var results = new Array();
         for (date in availableDates){
           if (availableDates[date] >= 3){
              results.push(date)    
          }
         }
        
         console.log(results) 
        

        【讨论】:

        • 第一行的var availableDates = new Array() 不是必须的。
        • 是的,没必要
        猜你喜欢
        • 2012-10-02
        • 1970-01-01
        • 1970-01-01
        • 2020-10-02
        • 1970-01-01
        • 2023-03-29
        • 2019-03-15
        • 2013-12-26
        • 1970-01-01
        相关资源
        最近更新 更多