将键值对添加到forEach循环内的对象

时间:2019-10-09 07:44:34

标签: foreach javascript-objects

我正在尝试使用forEach循环向对象添加可转换的结果。当我使用console.log结果时,我可以看到这些条目,但是当我尝试将其用于代码的其他部分时,我得到了一个空对象。

我之前收到一个错误,告诉我该对象的名称(结果)未定义。我将对象移到了函数之外,现在当我尝试返回对象的值时,只得到了一个空对象。

我首先尝试过这个:

        let results = {};

        // Check for all videos in cache (returns [])
        const findAllVidsInCache = (videoArray) => {
            videoArray.forEach(video => {
                check(video).then(res => {
                    // resultsArray.push(res);
                    results[video] = res;
                    return results;
                });
            });
            return results;
        }

然后我尝试了这个:

        let results = {};

        // Check for all videos in cache (returns [])
        const findAllVidsInCache = (videoArray) => {
            videoArray.forEach(video => {
                check(video).then(res => {
                    // resultsArray.push(res);
                    results[video] = res;
                    return results;
                });
            });
            let values = Object.values(results);
            return values;
        }

但是在调用函数时,我仍然会得到一个空对象(我正在使用devTools来调用该函数,因此不会有任何其他干扰。)

我正在寻找的东西以及将其登录到控制台时在控制台中看到的是一个对象,看起来像这样:

'video1': false,
'video2': false,
'video3': false,
'video4': true,
'video5': false,
...

最多12个视频。

有什么想法我在这里做错了吗?

1 个答案:

答案 0 :(得分:0)

尝试阅读有关承诺处理的信息。 return results;返回一个承诺。