Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 按csv文件的顺序读取列_Javascript_Csv_D3.js - Fatal编程技术网

Javascript 按csv文件的顺序读取列

Javascript 按csv文件的顺序读取列,javascript,csv,d3.js,Javascript,Csv,D3.js,从csv文件加载数据时,是否可以获取列的顺序 例如,加载csv文件的典型方法是调用d3.csv函数: d3.csv("data.csv", function(error, data) { var ageNames = d3.keys(data[0]).filter(function(key) { return key !== "State"; }); 通常,列存储为对象的属性,因此无法再检索顺序。另外,d3.keys()返回一个顺序未定义的数组 我这样问是因为我想按csv文件中的顺序对列进行排

从csv文件加载数据时,是否可以获取列的顺序

例如,加载csv文件的典型方法是调用d3.csv函数:

d3.csv("data.csv", function(error, data) {
var ageNames = d3.keys(data[0]).filter(function(key) { return key !== "State"; });
通常,列存储为对象的属性,因此无法再检索顺序。另外,d3.keys()返回一个顺序未定义的数组


我这样问是因为我想按csv文件中的顺序对列进行排序。任何帮助都将不胜感激。

您不需要使用列的名称来访问数据,您可以使用键的索引。索引由文件中的顺序决定,因此正是您要查找的内容

要获取对象的键,请使用
object.keys()


从关系视图来看,d3.js读取文件的方式具有相反的属性,这似乎令人惊讶:

关系视图:

  • 行没有任何保证的顺序
  • 列具有定义良好的顺序,可以通过参考它们的位置来寻址
d3.js视图(csv文件):

  • 行具有定义良好的顺序,可以通过引用行编号来寻址。(它们存储在一个数组中)
  • 列最终成为对象中的一组属性,因此它们没有定义良好的顺序
如果要访问csv文件中的列顺序,可以安全地假定属性上的“for…in..”循环或d3.keys()按给定顺序返回列。 如果添加或删除列,则可以销毁此顺序。对于大多数实际应用而言,情况并非如此


另见。描述的一个例外是:当列名是唯一的数字时,Chrome浏览器会根据它们的数字顺序而不是列顺序对它们进行排序。

只需使用索引访问数据,例如,
数据[0][0]
将是第一行第一列的数据。非常感谢!你可以回答我的意见,我很乐意接受。。我刚刚尝试了你的答案,但它不起作用:(.我使用了以下脚本:。数据是一个对象数组。因此数据[0][0]未定义。请澄清一下。对不起,我误解了你的意图。请参阅我的编辑。拉尔斯:谢谢你的快速回复,但API仍然说:数组的顺序未定义。我假设函数d3.keys()典型的“for..in..”循环不保证任何顺序。很抱歉坚持,但是这个主题已经困扰了我很长时间,我发布了几个相关的问题。我错了什么?在实践中,这应该让您获得正确的顺序,除非您修改数据(即删除或添加键)动态。这对你不起作用吗?我在几个例子中看到了关于正确顺序的假设。不,我没有经历过这样的情况。但是,读到关于不保证顺序的句子会让你怀疑这种方法是正确的。让我在回答中表达我的理解。如果你同意,我就不麻烦了你还需要这个:)
var keys = Object.keys(data[0]);
data[0][keys[0]]; // datum in the first row, first column