javascript - Lodash _.find 在参数中使用变量不起作用

标签 javascript find lodash

当我使用硬编码值(“RHID||'-'||NOME”)进行搜索时,它有效。

但是当我使用变量(prop)时它不起作用。

这是一种奇怪的行为。这是一个错误吗? 我正在使用 lodash 3.10。

非常感谢您的帮助。提前致谢

 var arr=[

      {
        "RHID||'-'||NOME": "3313-Abilio Dias Fernandes",
        "VAL": "CMIP@3313@1987-01-05",
        "OTHERVALUES": "400@1900-01-01@200@1900-01-01"
      },

    ]
    var prop="RHID||'-'||NOME"

    console.log(_.find(arr, {prop: "3313-Abilio Dias Fernandes"}))

    console.log(_.find(arr, {"RHID||'-'||NOME": "3313-Abilio Dias Fernandes"}))

https://jsfiddle.net/nxgfy7fp/1/

最佳答案

当您搜索{prop: "3313-Abilio Dias Fernandes"}时您正在寻找名为 prop 的特性,而不是变量 prop 的值.

您可以使用 ES6 的 computed property names使变量起作用:

var arr = [

  {
    "RHID||'-'||NOME": "3313-Abilio Dias Fernandes",
    "VAL": "CMIP@3313@1987-01-05",
    "OTHERVALUES": "400@1900-01-01@200@1900-01-01"
  },

]
var prop = "RHID||'-'||NOME"

console.log(_.find(arr, {
  [prop]: "3313-Abilio Dias Fernandes"
}));
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"></script>

如果您的目标浏览器不支持计算属性名称功能,请使用旧的括号表示法来设置属性值。

var arr = [
  {
    "RHID||'-'||NOME": "3313-Abilio Dias Fernandes",
    "VAL": "CMIP@3313@1987-01-05",
    "OTHERVALUES": "400@1900-01-01@200@1900-01-01"
  }
]
var prop = "RHID||'-'||NOME"
var search = {};
search[prop] = "3313-Abilio Dias Fernandes";

console.log(_.find(arr, search));
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"></script>

关于javascript - Lodash _.find 在参数中使用变量不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48260385/

相关文章:

javascript - 如何像 Facebook 一样快速地显示图片?

用于清理 Linux 服务器 session 文件夹的 Bash 脚本

Mysql查找替换为字符<,=,",>

javascript - Lodash uniqBy更新最新值

javascript - 如何使用 lodash.js 或 underscore.js 过滤 json?

javascript - 如何在单个文本区域中使用多个字体?

javascript - 破解复选框值

javascript - "To Be or Not to Be"关于 JavaScript 中的变量

linux - 如何找到文件数量最多的目录/子目录

javascript - lodash 中如何删除整个 memoize 缓存?