首页 > 解决方案 > 使用 forEach 从对象中提取值

问题描述

我运行 graphql 查询并获取数据(data.personalPlaces),一个看起来像这样的对象:

nodes: (4) [{…}, {…}, {…}, {…}]

其中每个节点是这样的:

0:
customisedName: "HomeOfBestFriendAlice"
id: 1
placeName: "Husbrok 1, 26127 Oldenburg, Deutschland"
center: "Zes"
__typename: "FavouritePlace"
__proto__: Object

我想遍历所有节点,以便可以从中创建一个数组

  favouriteLocations: [
    {
      name: 'Zu Hause',
      street: 'Müllersweg',

    },
    {
      name: 'Büro',
      street: 'Philipp-Reis-Gang',
    },
    {
      name: 'KaffeeHaus',
      street: 'Cloppenburgerstr.',
    },
  ],

其中 name 是 customisedName,而 street 是我原始数据中的 placeName。我怎样才能做到这一点?

数据形状:

{
  "data": {
    "personalFavouritePlaces": {
      "nodes": [
        {
          "placeName": "Paris, France"
        },

      ]
    }
  }
}

标签: javascriptreactjstypescriptreact-nativeforeach

解决方案


您可以在数组上使用 .map()

const favoriteLocations = data.personalFavouritePlaces.nodes.map(node => {
  return {
    name: node.customisedName,
    street: node.placeName
  }
}

推荐阅读