使用参数迭代Javascript对象

我有一个JavaScript对象,如下所示:

data = {
    'id': my_id,
    'report': my_report,
    'type': my_selection,
    'select': [
        {
            'valid': {
                'table': {
                    'pass': ['x', 'y', 'z'],
                    'fail': ['x', 'y', 'z']
            },
            'invalid': {
                'table': {
                    'pass': ['x', 'y', 'z'],
                    'fail': ['x', 'y', 'z']
            }
        }
    ]
};

我想使用一个迭代器(双迭代器?)提取所有有效/无效的表通过/失败数据。

因此,我想创建一个迭代器,该迭代器接受参数(“ valid”,“ invalid”)和另一个带参数(“ pass”,“ fail”)。

我以这个代码段为例,让其中一个迭代器正常工作:

function iterate() {
    let items = [];

    for (let iterator of arguments) {
        items.push(data.select[0][iterator]);
    }
    return items;
}

var selector_types = iterate('valid', 'invalid');

这将按预期返回“表”对象:

0 {table: Object}
1 {table: Object}

但理想情况下,iterate()将采用两组arg,例如:

function iterate() {
    let items = [];

    for (let iterator of arguments) {
        items.push(data.select[0][iterator[0]].table[iterator[1]]);
    }
    return items;
}

var selector_types = iterate(['valid', 'invalid'], ['pass', 'fail']);

这样的想法是一次性获得两个有效/无效密钥的通过/失败数据。这(当然)不起作用,并且返回未定义。

我要尝试的方法是否有迭代解决方案?

问候,

MJ