Javascript - 更新循环外的值,然后使用新值

标签 javascript json

我正在创建一个函数,它使用数组来导航 JSON 对象,并在每一步将其键推送到结果数组。问题是,我无法让循​​环在每个连续循环中使用更新的对象。

JSON 对象:

myData = {
    'Eye': {
        'Abnormal Morphology': [
            'Neoplasm',
            'Abnormality of the globe'
        ],
        'Abnormal Physiology': [
            'Hemorrhage',
            'Ptosis',
            'Ocular pain'
        ]
    },
    'Ear': {
        'Outer Ear': [
            'Abnormality of the pinna',
            'Abnormal location of ear',
            'Extra chondra fold'
        ],
        'Middle Ear': [
            'Glue ear',
            'Otitis media'
        ]
    }
}

函数:

view = ['Ear', 'Outer Ear']

getMenuItems(object, array) {
    let menuItems = Object.keys(object);
    let result = [menuItems];

    for (let item in array) {
        object = object[item];         // use updated object each time
        menuItems = Object.keys(object);
        result.push(menuItems);
    }

    return result;
}

我期望的结果是:

[['Eye', 'Ear'], ['Outer Ear', 'Inner Ear'], ['Abnormality of the pinna', 'Abnormal location of ear', 'Extra chondra fold']]

但我得到的是:

['Eye', 'Ear']

最佳答案

for( let item in array )

迭代项目键 (0,1,2)。可以使用 of 来迭代 props:

for( const item of array )

然后就是works

关于Javascript - 更新循环外的值,然后使用新值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46868277/

相关文章:

javascript - 模拟 Angular $resource

javascript - 映射数据时避免 'Cannot read property of undefined' 错误

javascript - 尝试使用 JS (Angular) 跨站点 JSON 请求 API

java - Wiremock:无法根据从 json 正文中查找所需参数来设置 stub

json - 无法使用 AWS Athena 加载简单的 Json 文件

javascript - 以编程方式在javascript中创建json数组对象

javascript - 统计指定列表中关键字出现的频率

javascript - 如何在没有库的情况下在 Vanilla JavaScript 中实现 "prevUntil"?

java - Volley JSONException : End of input at character 0 of

javascript - 谷歌浏览器扩展程序