我一直试图通过先过滤对象来返回对象的属性。这是我所做的:
var characters = [
{ 'name': 'barney', 'age': 36, 'blocked': false },
{ 'name': 'fred', 'age': 40, 'blocked': true },
{ 'name': 'pebbles', 'age': 1, 'blocked': false }
];
_.find(characters, function(chr) {
return chr.age == 40
});
它返回整个对象,就像我想返回特定属性一样。谁能指导我该怎么做?
任何帮助将不胜感激。
您可以使用Lodash链接功能。顾名思义,它使您可以链接Lodash方法调用。_.filter
并且_.map
适合这里:
const characters = [
{ 'name': 'barney', 'age': 36, 'blocked': false },
{ 'name': 'fred', 'age': 40, 'blocked': true },
{ 'name': 'pebbles', 'age': 1, 'blocked': false },
]
const names = _(characters)
.filter(c => c.age < 40)
.map('name')
.value()
alert(names)
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.3.0/lodash.min.js"></script>
作为记录,这是您可以在纯JS中执行的操作:
const characters = [
{ 'name': 'barney', 'age': 36, 'blocked': false },
{ 'name': 'fred', 'age': 40, 'blocked': true },
{ 'name': 'pebbles', 'age': 1, 'blocked': false },
]
const names = characters
.filter(c => c.age < 40)
.map(c => c.name)
alert(names)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句