如何在Loopback中访问数组的嵌套属性?

时间:2017-02-09 13:00:17

标签: javascript arrays ecmascript-6 loopback ecmascript-7

这里,
res =检索到的结果数组

res = [ Object, Object, Object... Object ]

每个对象如下所示:

Object{
    "userId": "ab1ce",
    "groupId": "a1de2"
}

现在,结果有一个像这样的对象数组,如何访问这些对象中的userId?

4 个答案:

答案 0 :(得分:1)

像这样:

res.forEach(function(obj){
 console.log(obj.userId);
});

答案 1 :(得分:1)

res是一个对象数组,所以要访问一个对象,你必须使用这样的东西:

res[index];

其中index是一个下标,用于指出所需的数组项。由于数组是0索引的,index应该在[0, res.length - 1]范围内。

然后当您从数组res访问某个项目时,您将获得一个可以使用以下方式访问的对象:

res[index].key;
// OR
res[index]["key"];

其中key是该对象的属性名称。因此,要获取数组中第一个对象的userId,请使用:

var mySecondObject = res[1]; // 0 is the first, 1 is the second ...
var theId = mySecondObject.userId; // or theId = mySecondObject["userId"];

或像这样的一行:

var theId = res[1].userId;

注意: res是一个数组,您可以使用多种不同的方式遍历它(for循环,forEach ...){ {3}}是如何做到的一个例子。

答案 2 :(得分:0)

对于数组的每个项目,0到n,您可以从数组中获取对象,然后访问它的属性。

例如def HA(df): df['HA_Close']=(df['Open']+ df['High']+ df['Low']+df['Close'])/4 nt = namedtuple('nt', ['Open','Close']) previous_row = nt(df.ix[0,'Open'],df.ix[0,'Close']) i = 0 for row in df.itertuples(): ha_open = (previous_row.Open + previous_row.Close) / 2 df.ix[i,'HA_Open'] = ha_open previous_row = nt(ha_open, row.Close) i += 1 df['HA_High']=df[['HA_Open','HA_Close','High']].max(axis=1) df['HA_Low']=df[['HA_Open','HA_Close','Low']].min(axis=1) return df 会获得第一个项目的userId。

你应该阅读某种Javascript入门手册以获得基础知识,其中一些列在info pagethis one中是一个很好的

答案 3 :(得分:0)

如果您在环回中使用它,则可以使用 where 子句中的 inq 属性,以便从数组内搜索内容 e.g:

modelname.method({ where: { "property": { inq [ res.property  ] } } }, (err, res) => {
    if(err) { return console.error(err);
    } else {
        return true;
    }
});

inq 运算符会检查指定属性的是否与 数组 中提供的任何值匹配>。一般语法是:

{where: { property: { inq: [val1, val2, ...]}}}

其中:

属性是要查询的模型中的属性(字段)的名称。

val1,val2等,数组中的文字值。

inq 运营商的

示例

Posts.find({where: {id: {inq: [123, 234]}}}, 
    function (err, p){... });

答案特定于环回。