I have an array of the alphabet and 2 sets of values, Im trying to check if a value is between the 2 given values then print out the letter. My code:
var alphabet_num = {
"alphabet": ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P"],
"start": ["0", "150", "300", "450", "600", "750", "900", "1050", "1200", "1350", "1500", "1650", "1800", "1950", "2100", "2250"],
"end": ["149", "299", "449", "599", "749", "899", "1049", "1199", "1349", "1499", "1649", "1799", "1949", "2099", "2249", "2399"]
};
var xValue = 76;
var result = alphabet_num.alphabet.map(
(k, i) => [
k, alphabet_num.start[i], alphabet_num.end[i]
if (xValue >= alphabet_num.start[i] && xValue <= alphabet_num.end[i]) {
//a
}
]
);
CodePudding user response:
If you are looking for a specific value, you don't need the map
function, you could solve it with find
.
const result = alphabet_num.alphabet.find(
(_letter, i) =>
parseInt(alphabet_num.start[i]) <= xValue &&
xValue <= parseInt(alphabet_num.end[i])
);
CodePudding user response:
<script>
var alphabet_num = {
"alphabet": ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P"],
"start": ["0", "150", "300", "450", "600", "750", "900", "1050", "1200", "1350", "1500", "1650", "1800", "1950", "2100", "2250"],
"end": ["149", "299", "449", "599", "749", "899", "1049", "1199", "1349", "1499", "1649", "1799", "1949", "2099", "2249", "2399"]
};
var xValue = 350;
var result = alphabet_num.alphabet.map(
function(k, i){
if (xValue >= alphabet_num.start[i] && xValue <= alphabet_num.end[i]) {
console.log(alphabet_num.alphabet[i]);
return alphabet_num.alphabet[i];
}else{
return '0';
}
}
);
// with 350 the array result
// result = ['0', '0', 'C', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0']
console.log(result);
// user findIndex function to find indx
let index = result.findIndex(function (value){
return value!='0';
});
// the index of 'C' letter in array result index =2
console.log(index);
// get result[2] so I get 'C' letter
console.log(result[index]);
</script>
CodePudding user response:
You can use this
alphabet_numBetweenStartAndEnd = function (alphabet_num, xValue) {
for (var i = 0; i < alphabet_num.start.length; i ) {
if (xValue >= alphabet_num.start[i] && xValue <= alphabet_num.end[i]) {
return alphabet_num.alphabet[i];
}
}
}