Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Js/Lodash获取数组值的父对象_Javascript_Lodash - Fatal编程技术网

Javascript Js/Lodash获取数组值的父对象

Javascript Js/Lodash获取数组值的父对象,javascript,lodash,Javascript,Lodash,给定以下数组: var arr = [ { id: '123', numbers: [123,456,789] }, { id: '456', numbers: [6543,344,34534] }] 如何获取数字数组中包含123的对象的父对象 我想搜索'123'并获得: { id: '123', numbers: [123,456,789] } 我试过使用: 这可以用地图来完成吗? @gcampbell是正确的 翻译成JavaScript,应该是 _.find(arr, func

给定以下数组:

var arr = [   { id: '123', numbers: [123,456,789] },  { id: '456', numbers: [6543,344,34534] }]
如何获取数字数组中包含
123
的对象的父对象

我想搜索
'123'
并获得:

 { id: '123', numbers: [123,456,789] }
我试过使用:

这可以用地图来完成吗? @gcampbell是正确的

翻译成JavaScript,应该是

_.find(arr, function(x) {
    return x.numbers.includes(123);
});

有关详细信息,请参阅。

由于您已经在使用
lodash
,因此可以使用
集合。查找

语法:
[predicate=.\identity]
是为每次迭代执行的函数。因此,不要传递
123
,而是传递这个函数

注意:这可以通过使用数组函数来实现,但它们存在兼容性问题,而且由于您已经在使用lodash,据我所知,这种方法更适合

var-arr=[{
id:'123',
编号:[123456789]
}, {
id:'456',
编号:[654343444343434]
}]
//ES6版本
var r=u.find(arr,x=>x.id=='123');
//ES5版本
var r1=u2;.find(arr,函数(el){return el.id=='123'});
console.log(r,r1)

在香草中:
arr.find(x=>x.id=='123')
对不起,我假设应该是
arr.find(x=>x.numbers.includes(123))
?啊,你的例子有误导性,它建议你想找到id=='123'
的物品,我会把它改为我想搜索'12',并得到:@Rajesh My bad。我打算使用
.find
,这是一个输入错误。因为您使用的是ES5,所以您可能应该使用
indexOf
而不是
includes
_.find(arr, function(x) {
    return x.numbers.includes(123);
});
_.find(collection, [predicate=_.identity], [fromIndex=0])