【问题标题】:How to get negated value from Lodash get() method如何从 Lodash get() 方法中获取负值
【发布时间】:2022-12-14 01:49:27
【问题描述】:

我正在使用 lodash get() 方法获取对象路径中的值。

但是,我的用例有时要求我获得否定值。 而且在检索值后我不能使用否定符号或否定方法()。 这是因为我使用 get() 方法的组件非常通用。 通常我需要直接的get()值。

有什么办法,比如将负号传递给对象路径作为 get 方法的参数?

例如-lodash.get('!styling.fullWidth')

我正在使用JavascriptVue.js

【问题讨论】:

  • 你试试return !get(this.item, setting.visibilityToggle);
  • 我不能直接应用它,因为它是一个非常通用的函数。我能想到的最好的方法是使用正则表达式来检查负号,然后有条件地返回一个负值。
  • 使用这样的字符串是不传统的。是的,您需要以某种方式解析它。您可以将此作为实现的一部分,从头开始编写 get 只需要几个字符串

标签: javascript vue.js lodash


【解决方案1】:

使用 regex 是我发现的让它按照我想要的方式工作的简单解决方案。

通过简单的正则表达式测试,我能够有条件地返回值。

/^!/.test()

这是我的解决方案-

showSetting(setting, type) {
  if (setting.type === type) {
    if (setting.visibilityToggle) {
      const hasNegateSymbol = /^!/.test(setting.visibilityToggle);
      if (hasNegateSymbol) {
        return !get(this.item, setting.visibilityToggle.slice(1));
      } else {
        return get(this.item, setting.visibilityToggle);
      }
    }
    return true;
  }
},

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-31
    • 1970-01-01
    • 2018-04-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多