Home > Mobile >  Javascript map array then compare keys if statement
Javascript map array then compare keys if statement

Time:03-26

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];
        }
    }
}
  • Related