2017-11-15 4 views
0

私は、JavaScriptの可視化ライブラリをカスタマイズしていますし、ホバー情報の配列を埋めるために小さなコードを書かれている:Safariとの互換性のためにjavascriptで入れ子になった矢印関数を置き換える方法は?

var text = zValues.map((zValues, i) => zValues.map((value, j) => { 
    return ` ID: ${yValues[i]}<br> Tissue: ${xValues[j]}<br> Expression: ${value.toFixed(2)} ` 
})) 

それはサファリを除くすべてのブラウザで動作します。私は、Safariは、矢印の機能をサポートしていないことを読んで、私は次のようにこの機能を置き換えることを試みた:

var text = zValues.map (function(zValues, i) { zValues.map (function (value, j) { 
    return ` ID: ${yValues[i]}<br> Tissue: ${xValues[j]}<br> Expression: ${value.toFixed(2)} ` 
});}); 

これは、任意のエラーを与えるものではありませんが、空の「テキスト」配列につながります。どのように問題を解決できますか?

+2

本当にes6がサポートされていないと思われる場合は、返品が必要です – Pointy

+1

もしTranspilerを使用してバベルのようなes5にしてください –

+0

@Pointy:この{zValues.map(return function(value、j)...} )しかし、これは構文エラーを与える。 – schustischuster

答えて

1

本文の単一の式文だけを持つ矢印関数は、暗黙の復帰を持ちます。 function決してで作成した関数は、暗黙のリターン(あなたがundefinedをカウントしない限り、私は推測する)を持っているので、あなたは明示的にあなたの矢印の関数式を返す必要があります。

var text = zValues.map (function(zValues, i) { return zValues.map (function (value, j) { 
    return ` ID: ${yValues[i]}<br> Tissue: ${xValues[j]}<br> Expression: ${value.toFixed(2)} ` 
});}); 

(あなたは既に、最も内側の結果式にreturnを持っていました。 )

+0

テンプレートリテラルの場合、矢印の機能はなぜサポートされますか? –

+0

@ JonasW。スティーブはそんなことを望んでいたでしょう。 – Pointy

関連する問題