ic
是我的输入数组,cbList
是我检查agaist的内部数组。我想检查整个数组并根据cbList
返回最高值。我有一些丑陋的代码已经尝试但我不想使用它,有人可以基本上使这更好,更有效。在我的情况下,我一直在寻找并找不到任何东西。
所以基本上只想检查ic
,如果最高弹出,如果没有找到最高,则突破并返回该值,然后继续检查高值,依此类推......
function hcbin(inv){
var fh;
var ic = ['low','med','low','high'];
var cbList = [ 'low', 'med', 'high','highest'];
for( var i = 0; i < ic.length; i++) {
if (ic[i] === cbList[3]) {
$scope.hdc = ic[i];
fh = true;
}
}
if (!fh){
for( var ii = 0; ii < ic.length; ii++) {
if (ic[ii] === cbList[2]) {
$scope.hdc = ic[ii];
fh = true;
}
}
}
if (!fh){
for( var iii = 0; iii < ic.length; iii++) {
if (ic[iii] === cbList[1]) {
$scope.hdc = ic[iii];
fh = true;
}
}
}
if (!fh){
for( var iiii = 0; iiii < ic.length; iiii++) {
if (ic[iiii] === cbList[0]) {
$scope.hdc = ic[iiii];
fh = true;
}
}
}
};
答案 0 :(得分:1)
试试这个代码段:
var ic = ['low','med','low', 'high'];
var cbList = [ 'low', 'med', 'high','highest'];
var result = null;
for (var i = (cbList.length - 1); i >=0; i--) {
if (ic.indexOf(cbList[i]) > -1) {
result = cbList[i];
break;
}
}
console.log(result);
确保cbList
保持优先顺序(从低到最高重要性),因为for
基于此。