连接映射键/值的最佳方式以逗号分隔

sol*_*cot 4 javascript ecmascript-6

我有一个看起来像的地图(它不是恒定的,可能有更多的子数组)

var mMp=    new Map([
    [ "A", [1, "r"] ],
    [ "B", [2, "d "]]
    ]);
Run Code Online (Sandbox Code Playgroud)

我正在努力达到:

var ks = "A, B"
var vs1 = "1, 2"
var vs2 = "r, d"
Run Code Online (Sandbox Code Playgroud)

我可以

mMp.forEach( (val, key) => {.....};
Run Code Online (Sandbox Code Playgroud)

我手动添加内容,但我必须检查最后一个值。我也想过

Array.from(mMp.keys()).join(", ");
Run Code Online (Sandbox Code Playgroud)

但我想这对价值观也没有帮助。而且效率较低,尽管我不太担心这里的效率。

我获得这 3 套琴弦的最佳方法是什么?谢谢你!

Ber*_*rgi 6

Array.from确实是要走的路。对于值,请使用and.values()回调.keys()

\n\n
var mMp = new Map([\n  ["A", [1, "r"]],\n  ["B", [2, "d"]],\n  // \xe2\x80\xa6\n]);\nvar ks = Array.from(mMp.keys()).join(", "); // "A, B"\nvar vs1 = Array.from(mMp.values(), v => v[0]).join(", "); // "1, 2"\nvar vs2 = Array.from(mMp.values(), v => v[1]).join(", "); // "r, d"\n
Run Code Online (Sandbox Code Playgroud)\n\n

如果您有任意长度的值数组,请使用循环来创建所有vs数组。

\n