var lvls = [65535,54038,47824,39322,32768,26526,18388,11818,5958],
halfDiff = 2979;
function anaGetKey(samples){
var keys = samples.map(function(v) {
var i;
var val = v + halfDiff;
for (i=0; i<lvls.length; i++){
if (lvls[i] < val){
console.log("found : "+i+" for "+v+" - "+val);
break;
}
}
console.log(" => return "+i);
return i;
});
console.log(keys);
}
anaGetKey([6000,12000,54000,65000]);
Why does map return 1 for the 65000 case ?
|_| espruino.com
2v09 (c) 2021 G.Williams
>found : 8 for 6000 - 8979
=> return 8
found : 7 for 12000 - 14979
=> return 7
found : 1 for 54000 - 56979
=> return 1
found : 0 for 65000 - 67979
=> return 1
[ 8, 7, 1, 1 ]
>
It prints 'found : 0', meaning i==0 and the last element of the keys array is 1 ?
Espruino is a JavaScript interpreter for low-power Microcontrollers. This site is both a support community for Espruino and a place to share what you are working on.
Consider this code snippet :
Why does map return 1 for the 65000 case ?
It prints 'found : 0', meaning i==0 and the last element of the keys array is 1 ?
What am I missing ?