2017-09-24 23 views
0

私はnoUiSliderの範囲プロパティのオブジェクトを動的にJavaScriptに構築しようとしています。ステップベースの範囲スライダを作成するには、minmaxの値が必要で、その間のすべての値はアイテムの合計値に対する割合である必要があります。次の例では3つのステップ、1、5と範囲スライダを作成し、以下のように10noUiSliderの動的Javascriptオブジェクトの構築

range: { 
    'min': 1, 
    '50%': 5, 
    'max': 10 
} 

私のデータが送られてきた:

[ 
    {width: "1"}, 
    {width: "1.5"}, 
    {width: "2"}, 
    {width: "3"}, 
    {width: "4"} 
] 

この配列はwidths任意の数とすることができます。私の入ってくるデータで、範囲スライダーが受け入れるオブジェクトにフォーマットする必要があります。これに似た何か:

{      { 
    'min': 1,    'min': 1, 
    '25%': 1.5,    '16.66%': 1.5, 
    '50%': 2,  OR  '33.32%': 2, 
    '75%': 3,    '49.97%': 3, 
    'max': 4    '66.66%': 4, 
}       '83.32%': 5, 
          'max': 6 
         } 

key値は最後の項目として最初のアイテムとしてmin値とmax値が含まれている必要があります。残りのキーは、幅配列の項目数に基づいてパーセンテージとして計算する必要があり、値は配列のwidthの値になります。

私は次のコードでOBJを作成しようとしましたが、あなたは反復として残りの要素をチェックについてminmax

function toObject(arr) { 
    var obj = {}; 
    for (var i = 0; i < arr.length; ++i) 
     if (arr[i] !== undefined) obj[i*10] = arr[i]; 
    return obj; 
} 
+0

あなたが示されているすべてがあります目標...しかし、あなた自身でこれを解決しようとする試みや実際に特定のコード関連の問題はありません。これは無料のコード作成サービスではありません。あなたのコード**を修正できるようにすることを目的としています** – charlietfl

+0

申し訳ありませんが、私はあなたの質問を更新しました。 – Romes

答えて

1

何に最初と最後のキー値を設定する方法がわかりません。

function toObject(arr) { 
    var obj = {}; 
    for (var i = 0; i < arr.length; ++i) { 
     var remaining = arr.length - i; 
     if (arr[i] !== undefined) { 
      if (remaining == arr.length) { 
       obj['min'] = arr[i].width; 
      } 
      else if (remaining === 1) { 
       obj['max'] = arr[i].width; 
      } 
      else { 
       obj[(i*10).toString()] = arr[i].width; 
      } 
     } 
    } 
    return obj; 
} 

コンソールからテスト:

>var a = [ 
    {width: "1"}, 
    {width: "1.5"}, 
    {width: "2"}, 
    {width: "3"}, 
    {width: "4"} 
]; 
> 
>toObject(a) 
{10: "1.5", 20: "2", 30: "3", min: "1", max: "4"} 
+0

私はこの値{string:number}に必要です。オブジェクトの中で最後に 'max'がある場合、 'min'が最初に必要です。 – Romes

+0

@Romes数値を数値として取得するには、 'parseInt(arr [i] .width、10)'のように 'parseInt(value、10)'に値をラップすることができます。順序が進む限り、オブジェクトの順序は一定の時間参照O(1)を提供するため、無関係です。言い換えれば、あなたはいつもキーを呼び出すことによってあなたが望む価値を得ることができるでしょう。 – JacobIRR