在JS对象中获取关联的父键

时间:2018-10-03 13:23:21

标签: javascript arrays

我有一个看起来像这样的Javascript对象:

[{
  "House 1": [
    "Room 1": [
      {"1": "TV"},
      {"2": "Sofa"},
    ],
    "Room 2": [
      {"3": "Desk"},
      {"4": "Sink"},
    ]
  ],
  "House 2": [
    "Room 1": [
      {"5": "Chair"},
      {"6": "Iron"},
    ],
    "Room 1": [
      {"7": "Safe"},
      {"8": "Cupboard"},
    ]
  ],
}]

我想传递一个4(接收器项目)之类的项目密钥,并能够检索“房间索引”(2号房间)和“房子钥匙”(1号房子)。

我能做到这一点吗?我知道.find()可能是个窍门,但是在多维的情况下,我无法全神贯注地做到这一点。

编辑:

我可以像这样遍历所有对象,但是我想知道是否有更简单的方法。

// loop through houses
for (var key in obj) {

    // loop rooms
    for (var key2 in obj[key]) {

        // loop through assets
        for (var key3 in obj[key][key2]) {

            if(key3 == venueId) {
                console.log("found it!" + obj[key][key2][key3]);
            }
        }
    }

}

1 个答案:

答案 0 :(得分:0)

reduce怎么样?

public signIn(email: string, password: string): Observable<string> {
    return this.jsonServerService.get('login').pipe(
        map(users => {
            if (/* valid */) {
                return user.userId;
            } else {
                throw new Error('Error');
            }
        }),
    );
}