首页 > 解决方案 > 将包含字符串的数组转换为键值对

问题描述

我有一个字符串“101-2000-10-102-2000-15”,我必须将其映射为键:101 个值:{2000, 10}。使用下面的代码,我可以获得 101 => 2000 的输出,但我无法获得剩余的值。这是代码:

let myString = "101-2000-10-102-2000-15"
let strArray = myString.match(/[^-]+-[^-]+-[^-]+/g);
console.log(strArray);
let compartmentMap = new Map(strArray.map(x => x.split("-")));
console.log(compartmentMap);

我的输入:“101-2000-10-102-2000-15” 所需输出:{101 => {2000,10}, 102 => {2000,15}}

标签: javascriptarraysregexstringmaps

解决方案


您还需要获取一组值。

let myString = "101-2000-10-102-2000-15"
let strArray = myString.match(/[^-]+-[^-]+-[^-]+/g);
console.log(strArray);
let compartmentMap = new Map(strArray.map(x => {
    const [k, ...v] = x.split("-");
    return [k, v];
}));

console.log(Array.from(compartmentMap));


推荐阅读