将if语句与创建映射变量(Javascript)结合使用

时间:2017-06-21 06:51:05

标签: javascript d3.js

我试图为网站创建一套直方图。我想创建一个映射变量,只有在角色具有特定等级时才会提取速度数据。我的数据集如下所示(我已经加粗了我想要处理的相关变量):

myData = [{name:' Maru',排名:' L',速度:117.6 },{name:' Kharg&# 39;,排名:' G',速度:114.4} ......等等......]

我尝试使用if语句(伪代码:如果myData.rank =' L' ...)以及以下内容:

var speedData = myData.map(function(i){return i.speed;})

但是,我没有运气。这是我尝试的样本(除其他外,但我怀疑这是最接近工作的):

    var lightData = myData.map(function(i){
        if (i.rank == 'L'){
            return i.speed;}
            })

这可能仅使用js和D3吗?我怀疑像Django这样的东西可能会让这更容易,但它只是限制了js和D3。

我意识到,如果我的数据集较小,我可以手动分离所有等级,然后在需要一次运行所有数据时进行合并。但是,这对我的数据来说是不切实际的。

1 个答案:

答案 0 :(得分:1)

使用普通的Javascript,您可以先使用链式方法进行过滤,然后根据需要映射该值。

var result = myData
        .filter(function (o) { return o.rank === 'L'; })
        .map(function (o) { return o.speed; });