2016-04-27 17 views
0

私は作業プロジェクト用のスクリプトを作成し始めていますが、私はどのように問題を解決できるのでしょうか?一致する場合に配列の値を設定する

ユーザーがスクリプトを起動すると、最適なパラメータを追加できます。存在する場合は、デフォルト値を新しい値に置き換えます。私は、彼らが存在する場合は値を交換する方法について壁に走った、と幸せになる4

$(document).ready(function() { 
 
    $("#JGallery").JGallery({ 
 
    Size: '4' 
 
    }); 
 
}); 
 

 
$.fn.JGallery = function (options) { 
 
    var obj = { 
 
     Size: '3', 
 
     Width: '1190' 
 
    }; 
 
    $.each(options, function (x, y) { 
 
     $.each(obj, function (xx, yy) { 
 
      if (xx == x) { 
 
       xx = y; 
 
      } 
 
     }); 
 
    }); 
 
    $('#testSize').html(obj.Size) 
 
    $('#testWidth').html(obj.Width) 
 
};
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<div id="JGallery"></div> 
 

 
<div id="testSize"></div> 
 
<div id="testWidth"></div>

3:それはSizeを交換する必要があります以下の例のように

正しい方法で誘導されること。ありがとう

答えて

1

objオブジェクトを連想配列として使用して更新する必要があります。ここで

はcodepen取り組んでいる。ここでhttp://codepen.io/adrenalinedj/pen/qZMwVJ

を修正一部です:

$.each(options, function (x, y) { 
    $.each(obj, function (xx, yy) { 
     if (xx == x && yy != y) { 
      obj[xx] = y; 
     } 
    }); 
}); 

私も状態の値を確認する程度の部分を追加(例えばyy != y。)。

+0

ありがとう、とてもうまくいった。 –

+0

非常に良い答え! –

0

最も簡単な解決策は、あなたが書くことができる上に、あなたの例ではjQuery.extend https://api.jquery.com/jquery.extend/
を使用することです:
VAR OBJ = $ .extend({}、{ サイズ: '3'、 幅:「1190 ' }、オプション);

関連する問題