[英]How to return index of object element matched from a check array
我希望标题能恰当地表达我要解决的问题。 我需要做的是在 object 中搜索检查数组中的匹配元素,并返回该匹配项的对象索引。 白衣:
const checkArray = ['18A38', '182B92', '85F33']; // these are the values to match
const dataOject = [
0 => ['id'=>'853K83', 'isGO'=>false], // this is the object to search through
1 => ['id'=>'85F33', 'isGO'=>true],
2 => ['id'=>'97T223', 'isGO'=>true],
3 => ['id'=>'18A38', 'isGO'=>false],
4 => ['id'=>'182B92', 'isGO'=>true],
...
];
我需要做的是找到匹配的索引,然后我可以检查是否设置了isGO
标志。 这就是我在死胡同时所尝试的:
results = checkArray.forEach(function(value, index){
if (dataObject.findIndex(function(k=> k == value))) results.push(k);
// i know 'results.push(k)' is not right, but it's the essence of what i want. :P
};
我期望results
将是一个索引数组,然后我可以返回 go 并检查dataObject
是否设置isGO
标志; results
应如下所示:
results = [3, 1, 4];
但我对如何使findIndex
正确完成感到困惑。 我读过这个和这个,但是,虽然有教育意义,但他们没有处理数组和object。 我在这个项目中确实有下划线,但同样,我还没有发现任何我认为在这种情况下有用的东西。
我如何让它以一种可以满足我需要的方式运行?
与其返回索引,不如返回对象本身更容易?
const matchedObjects = dataObject.filter(object => checkArray.includes(object.id));
这将返回在您的checkArray
中找到的所有具有id
的对象。
将这些对象放在matchedObjects
中,您可以遍历它们并做任何您想做的事情。
类似的东西?
const checkArray = ['18A38', '182B92', '85F33'] const dataOject = [ { id:'853K83', isGo:false }, { id:'85F33', isGo:true }, { id:'97T223', isGo:true }, { id:'18A38', isGo:false }, { id:'182B92', isGo:true } ]; const result = checkArray.map(val=>dataOject.findIndex(el=>el.id===val) ) console.log( JSON.stringify(result))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.