2017-06-21 96 views
1

我正在嘗試爲網站創建一套直方圖。我想創建一個映射變量,只有當角色具有特定的排名時纔會提取速度數據。我的數據集如下所示(我加粗,我要處理相關的變量):將if語句與創建映射變量(Javascript)結合使用

MYDATA的= [{名稱:「丸」,排名:「L」,速度:117.6}, {name:'Kharg',等級:'G',速度:114.4} ...等等...]

我想要使用if語句(僞代碼:if myData.rank ='L 」 ...)中與下面的結合:

變種speedData = myData.map(功能(I){返回i.speed;})

然而,我沒有任何運氣。下面是我想什麼樣(除其他東西,但我懷疑這是最接近工作):

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

這可能僅僅使用js和D3?我懷疑像Django這樣的東西可能會讓這更容易,但這是一個限制js和D3的作業。

我意識到,如果我的數據集較小,我可以手動分離所有等級,然後在需要一次運行所有數據時進行合併。但是,這對我所擁有的數據來說並不實用。

回答

1

使用簡單的Javascript,您可以先使用鏈式方法進行篩選,然後映射您需要的值。

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