【问题标题】:Javascript function incremant automatization problemJavascript函数增量自动化问题
【发布时间】:2019-05-22 07:27:29
【问题描述】:

下面是我的函数,dotkoy 变量:iterator.format('DD-MM-YYYY') == props.activity[0] || iterator.format('DD-MM-YYYY') == props.activity[2] 我不喜欢这样,props.activity 是数组我想 props.activity 自动增加到数组长度,我想检查iterator.format('DD-MM-YYYY') == props.activity[0]...props.activity[props.acticity.length] 总结 props.activity 数组中有日期我想用 iterator.format('DD-MM-YYYY') 以及时间和常量函数(如 loadsh 时间和常量方法)一一检查日期。感谢您的任何建议

Calculate = (props) => {

  const constant = x => () => x;
  const times = (n, iterator) => {
    let accum = Array(Math.max(0, n));
    for (let i = 0; i < n; i++) accum[i] = iterator.call();
    return accum;
  };
  let result = [];
  const currentMonth = props.focus.month();
  let iterator = moment(props.focus);
  let i = 0;
  let h = 0;
  let control = []
  while (iterator.month() === currentMonth) {
    if (iterator.weekday() === 0 || result.length === 0) {
      result.push(times(7, constant({})));
    }
    let week = result[result.length - 1];
    week[iterator.weekday()] = {
      date: iterator.date(),
      dotkoy: iterator.format('DD-MM-YYYY') == props.activity[0] || iterator.format('DD-MM-YYYY') == props.activity[2],
      selected: props.selected && iterator.isSame(props.selected, 'day'),
      today: iterator.isSame(moment(), 'day'),
      haftasonumu: iterator.format('ddd') == "Cts" || iterator.format('ddd') == "Paz",
    };
    iterator.add(1, 'day');
  }
  return result;
};

【问题讨论】:

    标签: javascript arrays reactjs momentjs


    【解决方案1】:

    只需使用Array#some。这将根据您提供的回调检查数组的每个成员,如果至少有一个成员通过检查,则返回 true,如果没有则返回 false

    dotkoy: props.activity.some(activity => iterator.format('DD-MM-YYYY') == activity)
    

    如果您想避免每次迭代都进行线性扫描,您可以预先计算查找 prop.activity 的所有成员并进行检查。在这种情况下,最简单的选择是Set

    const lookupDates = new Set(props.activity);
    
    /* ... */
    
    dotkoy: lookupDates.has(iterator.format('DD-MM-YYYY')), 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-14
      • 1970-01-01
      相关资源
      最近更新 更多