这种格式的数组怎么转换成
这种格式的数组?
这个数据生成有就点神奇,单个对象 JSON 组成数组,这个好理解;
对象的 value
值是一个坐标数组,这里就存在两种理解:
如果是第 1 种情况
const arr = data.map(json => JSON.parse(json));
如果是第 2 种情况,在上面的基础上还需要转换 value
const arr = data
.map(str => JSON.parse(str))
.map(obj => obj.value = obj.value[0].split(","));
如果还需要把坐标变为数值类型,可以对坐标结果进行 parseFloat 处理
const arr = data
.map(str => JSON.parse(str))
.map(obj => obj.value = obj.value[0].split(",").map(s => parseFloat(s)));
原生 map
没有做优化,可以手工合并两个 map
const arr = data
.map(str => {
const jo = JSON.parse(str);
jo.value = jo.value[0].split(",").map(s => parseFloat(s));
return jo;
});
全部转成字符串,在转换成对象。
var list = ['{"id":1}','{"id":2}'];
JSON.parse('['+list.toString() +']');
9 回答1.8k 阅读✓ 已解决
6 回答1.7k 阅读
3 回答1.5k 阅读✓ 已解决
4 回答1.4k 阅读✓ 已解决
3 回答1.2k 阅读
2 回答1.3k 阅读✓ 已解决
3 回答1.4k 阅读✓ 已解决
['{"value": ["123,234"]}'].map(str => JSON.parse(str, (k, v) => k == 'value' ? v[0].split(',') : v))
只有value的话,k的判断也可以省略