字符串到数字的嵌套数组

时间:2018-07-30 09:56:01

标签: javascript node.js

我正在寻找将字符串类型的嵌套数组转换为float类型,或者从文本文件中解析它。格式与此[45.68395, 32.98629],[23.6777, 43.96555],[43.66679, 78.9648]

相似

4 个答案:

答案 0 :(得分:1)

第一步是从您的字符串创建有效的JSON。

如果您的输入将始终遵循您显示给我们的模式,则只需在字符串前面加上方括号即可。但是,这不是一个很好的解决方案。首先,您应该首先检查是否可以获取有效的JSON。

如果输入字符串始终遵循"[float, float], [float, float]"的格式,则解决方案应如下所示:

const input = "[45.68395, 32.98629],[23.6777, 43.96555],[43.66679, 78.9648]";

// Add brackets in order to have valid JSON.
const arrayString = "[" + input + "]"; 

// Parse the string into an object.
const parsedArray = JSON.parse(arrayString);

// Flatten the nested array to get a one dimensional array of all values.
var flattenedArrays = [].concat.apply([], parsedArray);

// Do something with your values.
flattenedArrays.forEach(floatValue => console.log(floatValue));

答案 1 :(得分:0)

thread向您展示如何遍历字符串数组以将其转换为浮点数数组。

答案 2 :(得分:0)

如果您的数字实际上是JSON中的数字(序列号不带引号),则可以使用JSON.parse。

let test = "[[3, 4.2], [5, 6]]";
let test2 = JSON.parse(test);
console.log(test2);

否则,您可以使用+和一些数组映射将字符串数组简单地转换为数字数组。 :

let test = [["3", "4.2"], ["5", "6"]];
let test2 = test.map((x) => x.map((y) => +y));
console.log(test2);

当然,如果由于某种原因您不控制输入并且具有包含字符串的JSON,则可以将两种解决方案组合在一起。

答案 3 :(得分:0)

我希望这可以。.

var input = [[45.68395, 32.98629],[23.6777, 43.96555],[43.66679, 78.9648]]

var output = [];
  input.forEach(o => {
    o.forEach(s => parseFloat(s))
    output.push(o);
})

console.log(output);