当我使用硬编码值(“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"}))
最佳答案
当您搜索{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/