首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将字符串转到地图上?

如何将字符串转到地图上?
EN

Stack Overflow用户
提问于 2019-08-04 15:52:16
回答 4查看 62关注 0票数 2

我需要转换一个这样格式化的字符串:

代码语言:javascript
复制
string = "John:31,Miranda:28"

在这上面;

obj ={ "John“=> 31,"Miranda”=> 28 }

我做了这个:

代码语言:javascript
复制
const class = new Map();
array = string.split(",");

很明显,我不知道怎么处理它,因为在分裂之后,我得到了这样的东西:

代码语言:javascript
复制
["John:31", "Miranda:28"]

我不知道如何把它变成一个对象(使用":“作为箭头).也许我不需要用数组作为中介?有什么想法吗?谢谢

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2019-08-04 15:55:20

您可以使用split按逗号进行拆分,然后在生成的字符串上使用map再用冒号进行拆分,并将得到的数组输入Map构造函数。

例如,如果您希望将地图按名称键化,我怀疑您会这样做:

代码语言:javascript
复制
const string = "John:31,Miranda:28"
const map = new Map(string.split(",").map(entry => entry.split(":")));
console.log(map.get("John")); // "31" (a string)

如果您希望数字是数字,而不是字符串,则需要转换它们:

代码语言:javascript
复制
const string = "John:31,Miranda:28"
const map = new Map(string.split(",").map(entry => {
    const parts = entry.split(":");
    parts[1] = +parts[1];
    return parts;
}));
console.log(map.get("John")); // 31 (a number)

My answer here详细介绍了将字符串转换为数字的选项。

如果您希望以值作为键(我怀疑您不需要,但是.),则只需反转内部数组条目的顺序:

代码语言:javascript
复制
const string = "John:31,Miranda:28"
const map = new Map(string.split(",").map(entry => {
    const [name, num] = entry.split(":");
    return [num, name];
}));
console.log(map.get("31")); // John

票数 3
EN

Stack Overflow用户

发布于 2019-08-04 15:57:59

你可以试试这样的方法:

代码语言:javascript
复制
const data = "John:31,Miranda:28"

const splitData = data.split(',')

const result = splitData.reduce((newObject, item) => {
  const [name, age] = item.split(':')
  return {
    ...newObject,
    [name]: parseInt(age)
  }
}, {})

console.log(result)
票数 0
EN

Stack Overflow用户

发布于 2019-08-04 15:58:13

所以在逗号上拆分,在上面循环,在冒号上拆分,然后构建对象。

代码语言:javascript
复制
var myString = "John:31,Miranda:28"
var myObj = myString.split(',').reduce(function (obj, part) {
  var pieces = part.split(':')
  obj[pieces[0]] = pieces[1]
  return obj
}, {})

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

https://stackoverflow.com/questions/57348031

复制
相关文章

相似问题

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