如何通过json对象选项卡中的Id来检查对象是否存在

How to check if object exist by Id in tab of json object?

本文关键字:对象 Id 检查 是否 存在 何通过 json 选项      更新时间:2023-09-26

我有一个对象数组:

 var tab =  [
   {
     "id": "1",
     "data" : "blabla" 
   },
   {
      "id": "2",
      "data": "samplesample"
   }
 ]

有没有简单的工具可以通过id来检查这个数组中是否存在对象。

类似于:

 chekexists(tab, "id", "1") ;  // return true
 chekexists(tab, "id", "2") ;  // return true
 chekexists(tab, "id", "3") ;  // return false
 chekexists(tab, "data", "blabla") ;  // return true
 chekexists(tab, "data", "toto") ;  // return false

可以使用下划线执行此操作吗?

为了避免混淆,我的标签是这样加载的:

var tab = JSON.parse(fs.readFileSync('path'));

您可以使用以下下划线:

function checkexists(array, prop) {
  return !!_.where(array, prop).length;
}

现在你可以像这样使用它:

checkexists(tab, {id: '1'});
checkexists(tab , "data", "blabla") ;  

您可以使用_.findWhere:

function checkexists(list, props) {
  return _.findWhere(list, props) !== undefined;
}
checkexists(tab, {id: 1});
checkexists(tab, {data: 'toto'});

轻松使用开源项目jinqJs

var tab =  [
   {
     "id": "1",
     "data" : "blabla" 
   },
   {
      "id": "2",
      "data": "samplesample"
   }
 ]
 
var result = jinqJs().from(tab).where('id == 2').select();
document.body.innerHTML = '<pre>' + JSON.stringify(result, null, 4) + '</pre><br><br>';
//OR you can do this
result = jinqJs().from(tab).in(['1','2'], 'id').select();
document.body.innerHTML += '<pre>' + JSON.stringify(result, null, 4) + '</pre><br><br>';
<script src="https://rawgit.com/fordth/jinqJs/master/jinqjs.js"></script>