首页 > 解决方案 > 如何在 JS 中的 axios 中迭代一个对象/数组/键值的 forEach (make DRY)?

问题描述

我正在努力将这段代码压缩成一个 forEach 循环,以使我的代码变干。该图像显示了我正在使用的 console.log(res)。

imageForResponse

这是我的代码:

   .get('https://website.went.here/articles')
        .then((res) => { 
            const articles = res.data.articles;
            const js = articles.javascript;
            const bs = articles.bootstrap;
            const jq = articles.jquery;
            const node = articles.node;
            const tech = articles.technology;

            i = 0;

           console.log(articles.values(res));

            js.forEach((item) => {
                card.appendChild(cardCreator(item))
            });
            bs.forEach((item) => {
                card.appendChild(cardCreator(item))
            });
            jq.forEach((item) => {
                card.appendChild(cardCreator(item))
            });
            node.forEach((item) => {
                card.appendChild(cardCreator(item))
            });
            tech.forEach((item) => {
                card.appendChild(cardCreator(item))
            }); 

标签: javascriptarraysforeachaxios

解决方案


您可以使用Object.keys来获取对象的键。

例如,

const obj = {"javascript": [...], "python": [...], "bootstrap": [...]}

Object.keys(obj)将输出["javascript", "python", "bootstrap"].

从那里,您可以将该数组存储为变量,然后像这样遍历这些键:

const keys = Object.keys(obj);
keys.forEach(key => {
  obj[key]...
})

推荐阅读