2016-08-29 4 views
1

私は複数の配列アイテムを互いに入れ子にして呼び出しています。呼び出したいデータがあります。私は以下のことができるかどうかを知りたいと思っています。私は変数の総数を減らしたいので。javascript配列の最適化

//function to check for change 
    function dataChange(oldData, newData){ 
    if(oldData > newData){ 
     alert('change'); 
    } 
    } 


//current code 
var num1 = item[key]['b02'][0]; 
var num2 = item[key]['b02'][1]; 
var numOld1 = itemOld[key]['b02'][0]; 
var numOld2 = itemOld[key]['b02'][1]; 

dataChange(num1,numOld1); 


//proposed code 
var num1 = ['b02'][0]; 
var num2 = ['b02'][1]; 

dataChange(item[key].num1, itemOld[key].num1); 
+0

を 'itemOld'と' key'、item' 'の内容を追加してください同じように。 –

+0

その本当に長いですが、私は試してみます – Paddy

+1

@パディー:[最小限** **だけでなく**完全な**]に重点を参照してください。 –

答えて

0

あなたは、itemよりも他のすべてのitemOld、およびkeyを任意の変数を必要としません。また、

dataChange(item[key].b02[0], itemOld[key].b02[0]); 

しかし、書くことができる

dataChange(item[key]['b02'][0], itemOld[key]['b02'][0]); 

item[key]['b02']item[key]['b02']があるので、オブジェクトを参照するために変数を使用し、次に[0]とを使用することもできます:

var current = item[key]['b02']; 
var old = itemOld[key]['b02']; 

dataChange(current[0], old[0]); 
0

あなたは常に次のような構造を持っている場合、あなたは、単に次のように機能を実現することができます。

function dataChange(x, xk1, xk2, y, yk1, yk2) { 
    return x[xk1][xk2] > y[yk1][yk2]; 
} 

dataChange(item[key], 'b02', 0, itemOld[key], 'b02', 2);