如何将数组中的所有值做成一个数组。

问题描述 投票:0回答:1

对象是这样的 -

clients = [
  [{
      "label": "MongoDb",
      "value": "5ee71c494be8d0180c1b63d6"
    },
    {
      "label": "Hawlett",
      "value": "5ee71b5e4be8d0180c1b63d2"
    },
    {
      "label": "Coca Cola",
      "value": "5ee7195ef2d5e0175c5da986"
    }
  ],
  [{
      "label": "Tarun infotech",
      "value": "5ee71cc94be8d0180c1b63db"
    },
    {
      "label": "Sahara",
      "value": "5ee71c884be8d0180c1b63d9"
    }
  ],
  [{
      "label": "Tarun infotech",
      "value": "5ee71cc94be8d0180c1b63db"
    },
    {
      "label": "Sahara",
      "value": "5ee71c884be8d0180c1b63d9"
    }
  ]
]

我想把数组做成如下图所示的形式,以获得一个新的对象id数组来进一步执行任务--。

expected = ["5ee71c494be8d0180c1b63d6","5ee71b5e4be8d0180c1b63d2","5ee7195ef2d5e0175c5da986" ....]

任何帮助将被感激.我是新的Javascript。我希望有一种方法可以用较少的代码来完成这个任务。

javascript arrays json loops nested-loops
1个回答
2
投票

使用 平面图地图 值属性到你的数组中。

const clients = [
  [{
      "label": "MongoDb",
      "value": "5ee71c494be8d0180c1b63d6"
    },
    {
      "label": "Hawlett",
      "value": "5ee71b5e4be8d0180c1b63d2"
    },
    {
      "label": "Coca Cola",
      "value": "5ee7195ef2d5e0175c5da986"
    }
  ],
  [{
      "label": "Tarun infotech",
      "value": "5ee71cc94be8d0180c1b63db"
    },
    {
      "label": "Sahara",
      "value": "5ee71c884be8d0180c1b63d9"
    }
  ],
  [{
      "label": "Tarun infotech",
      "value": "5ee71cc94be8d0180c1b63db"
    },
    {
      "label": "Sahara",
      "value": "5ee71c884be8d0180c1b63d9"
    }
  ]
]

const res = clients
  .flatMap(arr => arr)
  .map(({value}) => value)

console.log(res)

2
投票

那么使用 .flat() 然后 .map()

let clients = [
  [{
      "label": "MongoDb",
      "value": "5ee71c494be8d0180c1b63d6"
    },
    {
      "label": "Hawlett",
      "value": "5ee71b5e4be8d0180c1b63d2"
    },
    {
      "label": "Coca Cola",
      "value": "5ee7195ef2d5e0175c5da986"
    }
  ],
  [{
      "label": "Tarun infotech",
      "value": "5ee71cc94be8d0180c1b63db"
    },
    {
      "label": "Sahara",
      "value": "5ee71c884be8d0180c1b63d9"
    }
  ],
  [{
      "label": "Tarun infotech",
      "value": "5ee71cc94be8d0180c1b63db"
    },
    {
      "label": "Sahara",
      "value": "5ee71c884be8d0180c1b63d9"
    }
  ]
]

let result = clients.flat().map(el => el.value);

console.log(result);

1
投票

您可以使用 flatMap()map():

clients = [
    [
        {
            "label": "MongoDb",
            "value": "5ee71c494be8d0180c1b63d6"
        },
        {
            "label": "Hawlett",
            "value": "5ee71b5e4be8d0180c1b63d2"
        },
        {
            "label": "Coca Cola",
            "value": "5ee7195ef2d5e0175c5da986"
        }
    ],
    [
        {
            "label": "Tarun infotech",
            "value": "5ee71cc94be8d0180c1b63db"
        },
        {
            "label": "Sahara",
            "value": "5ee71c884be8d0180c1b63d9"
        }
    ],
    [
        {
            "label": "Tarun infotech",
            "value": "5ee71cc94be8d0180c1b63db"
        },
        {
            "label": "Sahara",
            "value": "5ee71c884be8d0180c1b63d9"
        }
    ]
];

let values = clients.flatMap(c => c.map(a => a.value));
console.log(values);
© www.soinside.com 2019 - 2024. All rights reserved.