【问题标题】:How to push nested Objects into individual elements in an array?如何将嵌套对象推送到数组中的单个元素中?
【发布时间】:2017-04-01 23:01:50
【问题描述】:

以下 API 返回一些 JSON 数据:

https://en.wikipedia.org/w/api.php?format=json&action=query&generator=search&gsrnamespace=0&gsrlimit=10&prop=pageimages|extracts&pilimit=max&exintro&explaintext&exsentences=1&exlimit=max&gsrsearch=bananas

我正在尝试将 Pages 对象的属性(也是对象)推送到单个数组中。每个对象都应该是数组中自己的元素。

例如,query.pages 应该被推入像[38940{}, 284306{}, ...] 这样的数组中

我这样做是为了可以使用 ForEach 遍历数组并使用所需数据填充 DOM。

提前致谢!

【问题讨论】:

  • 请展示您尝试过的内容。 Stackoverflow 不是免费的代码编写服务。此处的目标是帮助您修复您的代码无法按预期工作时

标签: javascript arrays json object


【解决方案1】:

如果你有 ES6,这似乎就是你所需要的一切:

var pages = Object.values(response.query.pages);

或者您可以使用此变体使其在旧版浏览器中运行:

var pages = Object.keys(response.query.pages).map(function (key) {
    return response.query.pages[key];
});

更详细的答案可以在here找到。

【讨论】:

    【解决方案2】:
    // result is the json from https://en.wikipedia.org/w/api.php?format=json&action=query&generator=search&gsrnamespace=0&gsrlimit=10&prop=pageimages|extracts&pilimit=max&exintro&explaintext&exsentences=1&exlimit=max&gsrsearch=bananas
    
    const singleArray = Object.keys(result.query.pages).reduce((acc, id) => {
      acc.push(result.query.pages[id]);
      return acc;
    }, []);
    

    【讨论】:

    • 感谢@topheman。在对象上使用键正是我所追求的。
    猜你喜欢
    • 2020-07-08
    • 2020-06-21
    • 1970-01-01
    • 1970-01-01
    • 2021-11-06
    • 1970-01-01
    • 1970-01-01
    • 2021-10-28
    • 1970-01-01
    相关资源
    最近更新 更多