Javascript - 映射而不是for循环

时间:2016-11-11 19:59:52

标签: javascript d3.js

我有一个5000行的csv文件,每行有30个字段(数据代表不同化学元素浓度的测量值)。

我想用D3js解析和可视化数据。在文件中读取后,我有一个长度为5000的数组。这里,每个元素都是一个具有各种化学元素测量值的对象。例如,measurements[5].Aluminium在第五次测量时返回铝的浓度。

现在我宁愿为每个元素都安排数组,并将所有测量结果作为元素。虽然使用for循环很容易,但我想尝试map函数。

Aluminium = measurements.map(function(row){
    return row.Aluminium;
});

这可行,我可以为每个元素执行此操作,但我更喜欢将元素作为参数本身。

function selectElement(elementname){
      measurements.map(function(row){
          return row.elementname;
      });
};

Aluminium = selectElement('Aluminium');
Iron = selectElement('Iron');

这就是我被困住的地方。

2 个答案:

答案 0 :(得分:1)

使用Javascript,您可以使用方括号中的键字符串选择子属性,因此obj.key变为obj['key']

使用此表示法,您可以重写selectElement函数以匹配以下内容:

function selectElement(elementname){
      measurements.map(function(row){
          return row[elementname];
      });
};

我们知道elementname是一个字符串,用作行对象的选择器

答案 1 :(得分:0)

.success { display: block; } .success .introduction{ margin-bottom: 10px; margin-top: 10px; display: block; } .success .success-instruction { margin-bottom: 5px; white-space: nowrap; } .success .circledNumber { display: inline-block; background-color: orange; color: white; margin-right: 12px; border-radius: 50%; width: 18px; height: 18px; text-align: center; } .success .success-details{ display: inline-block; white-space: normal; } .success h4{ display: inline; font-size: inherit; } 查找值为" elementname"的键。点符号不做评估。做

row.elementname