将字符串转换为多个对象 (javascript)

用户8758206

我有以下字符串:Jack:13,Phil:15,Lucy:12我正在尝试从此字符串中获取对象。

该字符串将包含 3 个带有年龄的人对象。如何做到这一点?

我尝试了以下方法:

var s = 'Jack:13,Phil:15,Lucy:12'

var obj1 = eval("("+s+")");
var obj2 = JSON.parse(s);

记录任何 obj 变量都会返回错误。我在这里错过了一个简单的技巧吗?任何解释将不胜感激,谢谢。

TJ克劳德

一般来说,如果您正在对字符串进行替换以将其转换为您可以传递的内容evalJSON.parse,那可能不是您的最佳方法。特别是,尽可能避免使用eval(或其表亲new Function)(您当然可以在这里),并始终避免eval(或其表亲new Function)使用不受信任的输入。

一对splits 可以map做到:

const s = 'Jack:13,Phil:15,Lucy:12'
const people = s.split(",")
  .map(e => e.split(":"))
  .map(([name, age]) => ({name, age}));
console.log(people);

...或在 ES5 中:

var s = 'Jack:13,Phil:15,Lucy:12'
var people = s.split(",")
  .map(function(e) { return e.split(":"); })
  .map(function(e) { return {name: e[0], age: e[1]}; });
console.log(people);

我不知道为什么我做了两张地图,而不是仅仅做第二次分割并在同一个回调中创建对象;我想我越来越多地以“函数式编程”的方式思考。我会改变它,但埃迪的回答已经在一个单一的map,所以......

...(edit) 但由于看起来您想要单独的属性,而不是像 Eddie 那样使用人名,这里有一个上面的例子,但只有一个map

const s = 'Jack:13,Phil:15,Lucy:12'
const people = s.split(",")
  .map(e => {
    const [name, age] = e.split(":");
    return {name, age};
  });
console.log(people);

...或在 ES5 中:

var s = 'Jack:13,Phil:15,Lucy:12'
var people = s.split(",")
  .map(function(e) {
    var parts = e.split(":");
    return {name: parts[0], age: parts[1]};
  });
console.log(people);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将 JavaScript 对象转换为字符串

将字符串数组转换为对象Javascript

将字符串转换为对象javascript / jquery

javascript将JSON字符串转换为JSON对象

无法将JSON字符串转换为Javascript对象

将Javascript对象键转换为字符串

将javascript字符串转换为html对象

将JavaScript对象转换为URI编码的字符串

Javascript将日期字符串转换为对象

将字符串转换为JavaScript中的对象数组

将字符串点符号转换为 javascript 对象

将字符串数组转换为对象数组-javascript

将字符串转换为 JavaScript 对象

Javascript:将字符串转换为对象数组?

将字符串数组转换为JAVASCRIPT对象

使用Javascript将字符串转换为对象

将字符串转换为Javascript中的对象

Highcharts:使用 javascript 将字符串转换为对象

将多行字符串转换为javascript对象

Javascript将字符串转换为对象(列表/数组)

将datetime对象转换为特定的字符串Javascript

将JSON字符串转换为对象Javascript

将字符串转换为Javascript中的JSON对象

JavaScript 将包含代码的字符串转换为对象

使用 PHP 将包含 JavaScript 对象的字符串转换为 JSON 字符串

将字符串对象转换为Javascript中的字符串基元

通过拆分字符串将字符串转换为对象 javascript

将字符串转换为日期对象,添加两个小时并转换回字符串(JavaScript)

如何将格式正确的 Javascript 对象(字符串格式)转换为对象?