给出以下数组:
var arr = [ { id: '123', numbers: [123,456,789] }, { id: '456', numbers: [6543,344,34534] }]
如何在数组数组中获取包含123
的对象的父对象。
EG。我想搜索'123'
并获取:
{ id: '123', numbers: [123,456,789] }
我尝试过使用:
_.find(arr, 123);
_.findKey(arr,123);
这可以用_map完成吗? https://lodash.com/docs#map
答案 0 :(得分:1)
@gcampbell是正确的。
转换为JavaScript,它应该是
@Component({
selector: 'child-event-producer',
template: `
<p (mousemove)="handle($event)">
<ng-content></ng-content>
</p>
`
})
export class ChildEventProducerComponent {
constructor(private svc:LocationService) {}
handle(e:MouseEvent) {
this.svc.moveTo({x: e.x, y: e.y});
}
}
您可以参考Underscore documentation了解更多信息。
答案 1 :(得分:0)
由于您已使用lodash
,因此可以使用collection.find
。
_.find(collection, [predicate=_.identity], [fromIndex=0])
[predicate=_.identity]
是为每次迭代执行的函数。因此,不要传递123
,而是传递此函数。
注意:这可以使用Array函数完成,但它们存在兼容性问题,因为您已经在使用lodash,根据我的理解,这种方法更适合。
var arr = [{
id: '123',
numbers: [123, 456, 789]
}, {
id: '456',
numbers: [6543, 344, 34534]
}]
// ES6 version
var r = _.find(arr, x => x.id == '123');
// ES5 version
var r1 = _.find(arr, function(el){ return el.id == '123' });
console.log(r, r1)
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.14.1/lodash.min.js"></script>