2016-12-15 63 views
2
dataset = data.map(function(d) 
       { return [ +d["Control 1"], +d["Control 2"], 
       +d["Exp3"], +d["Exp4"], +d["Exp5"], +d["Exp6"] ]; 
       }); 

我希望能夠插入其他+ D的成基於用戶的文件輸入功能(我已經擁有它像[「exp7」,「exp8」的數組...])。 如何編寫它以使數組類似+ d [「exp7」]等等等等?更改基於輸入的JavaScript函數在HTML

我正在用html寫這篇文章。

謝謝!

回答

0

我認爲這將是一個利用柯里化的好地方。

你可以做一個助手,做這樣的事情:

function t(fields) { 
    return function (data) { 
    return fields.map(function (field) { 
     return +data[field] 
    }) 
    } 
} 

然後您可以利用它想:

dataset = data.map(t([ 
    "Control 1", 
    "Control 2", 
    "Exp3", 
    "Exp4", 
    "Exp5", 
    "Exp6" 
])); 

這樣你就可以在按鍵的其他數組傳遞直接。

編輯: 如果您在ES6環境中工作,你可以使用簡單的單行組合子:

const t = fs => d => fs.map(f => +d[f]) 
+0

你忘了一回...'返回+數據[現場]'...否則你會得到一個'undefined'的數組:) –

+0

良好的捕獲。固定。 – tengbretson