我怎样才能在javascript中使用这个find数组并匹配数组?

时间:2018-03-20 09:34:21

标签: javascript meteor lodash

这是我的数据 - 如何在数组中找到itemId。

let itemId=['001', '002', '003'] 
const data = [
  { id: 1, itemId: '001' },
  { id: 2, itemId: '002' },
  { id: 3, itemId: '003' },
];

这是我在lodash中的功能,但它不起作用。

  _.find(data, ['itemId',{$in: itemId}])

2 个答案:

答案 0 :(得分:4)

使用_.intersectionWith()获取data中的所有项目,其ID显示在itemId数组中:

const itemId=['001', '003'];
const data = [
  { id: 1, itemId: '001' },
  { id: 2, itemId: '002' },
  { id: 3, itemId: '003' },
];

const result = _.intersectionWith(data, itemId, ({ itemId }, id) => itemId === id); 

console.log(result);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.5/lodash.min.js"></script>

答案 1 :(得分:3)

如果您要过滤(...) jsonfile.readFile('./public/lista.json', function (err, obj) { if (err) console.log(err); else { console.log('id= '+ req.params.id); obj.splice(req.params.id, 1); res.sendStatus(200); //this sends a OK from the server } 数组中包含data数组中itemId的所有项目,您可以尝试使用支持的Ids方法而不使用{{1 }} https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/filter

&#13;
&#13;
filter
&#13;
&#13;
&#13;