[英]Javascript map array then compare keys if statement
我有一個字母數組和 2 組值,我試圖檢查一個值是否在 2 個給定值之間,然后打印出字母。 我的代碼:
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
}
]
);
如果你正在尋找一個特定的值,你不需要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>
你可以用這個
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.