通过特定键访问对象

时间:2019-10-22 19:07:22

标签: javascript

我正在查询数据库,它正在返回称为合同的集合中的所有对象。这些合同是具有键和值的简单对象。如

{
name: BOB,
title: theinternet
date: {...}
}

我想检查每个对象中的特定键,但是我不确定如何正确地描述这些对象如何组合在一起,而且我不知道如何访问该对象集合内的任何数据。

console.log(contracts)
returns  

Array(4) [ {…}, {…}, {…}, {…} ] this spreads to 


(4) […]
​
0: Object { id: "1K19Q7tXIM2yJih7Qj4y", amount: "123421", company: "43214", … }
​
1: Object { id: "MvEr5t9Sd0oqDyajN9rl", amount: "663425", company: "tewq", … }
​
2: Object { id: "ckgOLDU6RdstsIoraKiy", amount: "123421", company: "43214", … }
​
3: Object { id: "jr6XjkAntRucmx0EPeQC", amount: "134", company: "rewq", … }

但是我什么时候

console.log(typeof contracts) it says its an object.

通过执行以下操作,我能够正确获取对象的大小...但是我不知道如何在该对象中搜索特定键。

Object.size = function(obj) {
        var size = 0, key;
        for (key in obj) {
            if (obj.hasOwnProperty(key)) size++;
        }
        return size;
    };
    console.log(Object.size(contracts))

returns 4

一旦我拥有了所有想要的对象,我就可以if(obj.title ==='theinternet'然后做些事。但是我不熟悉解构这种类型的对象。

2 个答案:

答案 0 :(得分:1)

您可以使用https://www.postgresql.org/docs/current/sql-do.html

let newObj = contracts.filter(item => item.title === 'theinternet')

答案 1 :(得分:1)

有两种方法,如果只希望linq上的诸如firstOrDefault之类的项,则要使用 find(),如果您希望所有与您的 Id匹配的项,您将使用 filter()。您也可以使用地图或其他任何东西,但过滤或查找会更有意义。

var data = [{
        'id': '1K19Q7tXIM2yJih7Qj4y',
        'amount': '123421',
        'company': '43214'
   },
   {
        'id': 'MvEr5t9Sd0oqDyajN9rl',
        'amount': '663425',
        'company': 'tewq'
   },
   {
        'id': 'ckgOLDU6RdstsIoraKiy',
        'amount': '123421',
        'company': '43214'
   },
   {
        'id': 'jr6XjkAntRucmx0EPeQC',
        'amount': '134',
        'company': 'rewq'
   }
   ];

   function filterObject(filterParam) 
   {
    return data.filter(a=> a.id == filterParam)
   }
  

在此处传递参数。

   console.log(filterObject('1K19Q7tXIM2yJih7Qj4y'));

这种方式将返回所有项目,也尝试使用 find()