我有多个数组项嵌套在彼此和兑现的数据我想调用,我想知道如果有一种方法,我可以做到以下。因为我想减少变量的总数。
//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);
除了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]
和[1]
:
var current = item[key]['b02'];
var old = itemOld[key]['b02'];
dataChange(current[0], old[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);