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

标签 javascript d3.js

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

myData = [{name:'Maru',等级:'L',速度:117.6},{name:'Kharg',rank:'G',速度:114.4}.. .等等...]

我尝试将 if 语句(伪代码: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 的作业。

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

最佳答案

使用纯 Javascript,您可以使用链式方法,首先进行过滤,然后映射您需要的值。

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

关于javascript - 将 if 语句与创建映射变量结合使用 (Javascript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44668733/

相关文章:

javascript - lodash 模板中的返回函数值

javascript - 在 d3 Dragstart 上附加元素

javascript - D3.js 如何在使用函数时应用多个类

javascript - D3 : Merge JSON object entries

javascript - mediaelement.js:监听从 mep-feature-ads 触发的事件

javascript - 比较数组内的值、计算它们并合并表中的行

javascript - 使用谷歌地图坐标连接两个对象数组

javascript - TypeScript 中的 Angular Material 示例 : Chips

events - 如何在 nvd3.js 图上添加点击事件

javascript - 在 D3.js 中强制布局中的动画对象