首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >合并映射中的所有值

合并映射中的所有值
EN

Stack Overflow用户
提问于 2020-03-11 19:28:28
回答 4查看 286关注 0票数 1

我得到了一个恒定的结果,如下所示:

代码语言:javascript
复制
result: Map<string, string[]>

当我执行console.log(结果)时,输出是:

代码语言:javascript
复制
Map {
 'toto' => [ 'a-1', 'a-2' ],
 'tata' => [ 'b-1', 'b-2' ],
 'titi' => [ 'c-1', 'c-2' ],
}

我想要的是一个常量globalResult,所有的值都是这样的:

代码语言:javascript
复制
const globalResult = [ 'a-1', 'a-2','b-1','b-2','c-1','c-2' ]

我该怎么做呢?

谢谢

EN

回答 4

Stack Overflow用户

发布于 2020-03-11 19:33:38

您可以将values映射到一个数组中,然后对其使用flat()方法,如下所示:

代码语言:javascript
复制
const myMap = new Map().set('toto', ['a-1', 'a-2']).set('tata', ['b-1', 'b-2'])
const arr = [...myMap.values()].flat()

console.log(arr)

票数 2
EN

Stack Overflow用户

发布于 2020-03-11 19:35:38

可以使用Array.from将映射值转换为平面数组

代码语言:javascript
复制
const map = new Map();

map.set('a',11)
map.set('b',22)
map.set('c',33)

const array = Array.from(map.values())
console.log(array)

票数 2
EN

Stack Overflow用户

发布于 2020-03-11 19:34:02

使用forEach函数。

代码语言:javascript
复制
  const obj = {
     'toto' : [ 'a-1', 'a-2' ],
     'tata' : [ 'b-1', 'b-2' ],
     'titi' : [ 'c-1', 'c-2' ],
    }

    const arr = [];
    Object.values(obj).forEach(value=>arr.push(...value));
    console.log(arr);

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60634977

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档