我正在尝试为网站创建一套直方图。我想创建一个映射变量,仅在 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/