Lodash _.set 创建空对象键

Lodash _.set creates empty object keys

我有以下行:

_.set(state, `timeTable.${new Date().getMonth()}.${new Date().getDate()}.name`, someNameValue);

如果今天的日期是:8 Aug(月份:8,Day:8) 这将设置 state object 如:

const state = {
  timeTable: {
    0: null,
    1: null,
    ...
    8: {
      0: null,
      1: null,
      ...
      8: {
        name: someNameValue,
      }
    } 
  }
}

为什么要这样做?或者我怎样才能只创建我需要的键而不创建那些 null objects

在调用此方法之前,您必须将状态定义为对象。使用 integer/numeric 索引将强制将所有先前的索引填充为空。相反,我建议您使用 String 作为键。

_.set(state, `timeTable.month_${new Date().getMonth()}.date_${new Date().getDate()}.name`, someNameValue);

并确保您没有在数据为空时调用此设置方法。例如,如果您没有 8 月 6 日的数据,则该行不应在 8 月 6 日执行。如果您在循环中使用它,则应检查它。