如何在Lodash中将函数从数组链接到对象
How to chain functions from array to object in Lodash
我本来希望这能成功,但没有成功:
var myName = _(myArray)
.find({ "ID": 5 })
.get("Name");
基本上,我想在一个数组中找到一个元素,其中ID属性等于5,然后得到它的"Name"属性的值。
我错过了什么?
此处不需要使用.get()
。.find()
返回匹配的对象,因此要提取其Name
属性,只需在该对象上引用.Name
即可:
var myName = _(myArray).find({ "ID": 5 }).Name;
只有在.find()
调用成功的情况下,这才会起作用。您可能想将.find()
的结果存储在一个变量中,然后在返回Name
属性之前检查它是否不是null
:
var match = _(myArray).find({ "ID": 5 }),
myName;
if (match) {
myName = match.Name;
}
下面,我编写了三个不同的调用,它们都将返回所需的数据。正如他们所说,在编程方面,剥猫皮的方法不止一种。你必须根据自己的需要选择最有效或最高效的。
下面使用_.result
函数的后两个函数是根据lodash文档改编的。您可以使用result来替换_.get()
。
_.result(object, path, [defaultValue])
此方法类似于
_.get
,只是若解析的值是一个函数,则使用其父对象的此绑定来调用它,并返回其结果。自变量
object
(Object):要查询的对象path
(数组|字符串):要解析的属性的路径[defaultValue]
(*):如果解析的值未定义,则返回的值退货
- (*):返回已解析的值
var myArray = [
{ ID : 0, Name : 'Foo' },
{ ID : 1, Name : 'Bar' },
{ ID : 5, Name : 'Baz' },
{ ID : 10, Name : 'Oof' }
];
// Convienience function to print to the DOM. (Only for debugging)
function print() {
document.body.innerHTML += '<p>' + [].join.call(arguments, ' ') + '</p>';
}
// Find item using chaining with `_.find()` and `_.get()`.
print(
'<span class="lbl">Chain + Find + Get:</span>',
_(myArray).chain().find({ 'ID' : 5 }).get('Name')
);
// Find item using a predicate (function).
print(
'<span class="lbl">Find (Function Predicate) + Result:</span>',
_.result(_.find(myArray, function(chr) {
return chr.ID === 5;
}), 'Name')
);
// Find item using the `_.matches()` callback shorthand.
print(
'<span class="lbl">Find (Object Predicate) + Result:</span>',
_.result(_.find(myArray, { 'ID' : 5 }), 'Name')
);
.lbl {
font-weight: bold;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/3.10.1/lodash.js"></script>
相关文章:
- 通过iron-ajax初始化对象数组(链接到caller's元素的响应)
- Javascript排序索引链接数组
- 如何在不链接/jquery的情况下使用方法应用css属性数组
- 将 Javascript 数组中的文本转换为超链接
- 如何将JavaScript数组输出到HTML链接
- 尝试使用Javascript在数组中创建一个带有随机选择页面的链接
- Javascript:如何加入所有链接(数组)
- 如何创建图像数组作为链接
- 在不触发弹出过滤器的情况下打开数组中的链接
- javascript中最大字符数的链接不起作用
- 将单击的链接传递到会话数组
- 找到包含单词的特定链接并添加到数组中
- 使来自 GetJson 数组的循环数据成为链接
- 如何从数组获取链接以在youtube Iframe API中播放
- 使用 JavaScript 向一组链接中的第一个链接添加一个属性
- 如何将数组链接到 html 中的 javascript 函数
- 如何在Lodash中将函数从数组链接到对象
- 弹出窗口中的一组链接,用设置的文本填充特定命名的字段
- 如何将承诺与数组链接起来
- 简单的JavaScript将数组链接ID附加到html文档中