简体   繁体   English

Javascript map array then compare keys if 语句

[英]Javascript map array then compare keys if statement

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.我有一个字母数组和 2 组值,我试图检查一个值是否在 2 个给定值之间,然后打印出字母。 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
    }
]
);

If you are looking for a specific value, you don't need the map function, you could solve it with find .如果你正在寻找一个特定的值,你不需要map function,你可以用find解决它。

const result = alphabet_num.alphabet.find(
  (_letter, i) =>
    parseInt(alphabet_num.start[i]) <= xValue &&
    xValue <= parseInt(alphabet_num.end[i])
);

 <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>

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM