Javascript D3.js数组在.map之后加双引号
我有以下代码:Javascript D3.js数组在.map之后加双引号,javascript,arrays,d3.js,Javascript,Arrays,D3.js,我有以下代码: d3.csv("static/data/river.csv", function(data) { var latlongs = data.map(function(d) { return [d.Lat,d.Lng]; }) var lineArray1 = latlongs; console.log(lineArray1); 我得到一个输出lineArray1,看起来像[Array(2)、Array(2)、Array(2)…]等等
d3.csv("static/data/river.csv", function(data) {
var latlongs = data.map(function(d) { return [d.Lat,d.Lng]; })
var lineArray1 = latlongs;
console.log(lineArray1);
我得到一个输出lineArray1,看起来像[Array(2)、Array(2)、Array(2)…]等等。但当我查看实际数组(2)时,它们看起来像:
["-35.48642101", "144.8891555"]
["-35.48695061", "144.8893026"]
["-35.48704283", "144.889315"]
有没有办法在一开始就去掉双引号?我尝试了lineArray1.map(Number),但出于某种原因,这只是生成了一个NaN数组。我想要的输出是:
[-35.48642101, 144.8891555]
[-35.48695061, 144.8893026]
[-35.48704283, 144.889315]
谢谢 看起来
d.Lat
和d.Lng
都是字符串,因此如果您想将它们转换为数字,请对它们调用Number
:
var latlongs = data.map(function(d) { return [Number(d.Lat), Number(d.Lng)]; });
或者,要不重复编号两次,请在以下内容中再次使用.map
:
var latlongs = data.map(function(d) { return [d.Lat, d.Lng].map(Number); });
或者,在现代JS中:
const latlongs = data.map(({ Lat, Lng }) => [Lat, Lng].map(Number));
您的lineArray1.map(Number)
不起作用,因为lineArray1
包含数组(数字),而不仅仅是数字,对数组调用Number
也不起作用