楽透の最高と最低ランキング


https://programmers.co.kr/learn/courses/30/lessons/77484

問題は自動的に英語になります...原因が分からない!!
宝くじを買ったので、弟に見分けがつかなくなった.あなたが当選できる最高と最低の順位を知りたいです.
44、1、0、0、31、25~0は読めない数字です.
当選番号が31,10,45,1,6,19なら
例に示すように、
0に合わない番号は2つなので、1位と2位ではあり得ません.4つ正解で3位
すでに2つの番号が合っているので、最下位になるはずがありません.2つ正解で5位
lottosの長さは6,0から45の数字で、0を除いて重複する数字はありません.整列していない可能性もあります.
win numsの長さは6、1から45で、重複する数字はありません.整列していない可能性もあります.
let lottos = [44, 1, 0, 0, 31, 25]
let win_nums = [31, 10, 45, 1, 6, 19]

function solution(lottos, win_nums) {
    let answer = [];
    
    const matching_num = lottos.filter(i => win_nums.includes(i)).length;
    const zeros = lottos.filter(i => i === 0).length;
    console.log(matching_num) //2 [1, 31]
    console.log(zeros) //2 [0, 0]
    
    const high = matching_num+zeros <2 ? 6 : 7-(matching_num+zeros);
    const low = matching_num <2 ? 6 : 7-matching_num;
    if(high>=7) high = 1;
    
    answer = [high, low];
    return answer;
}

console.log(solution(lottos, win_nums)) // [3, 5]
filter()でlottosのwin numsの個数lottosの0の個数を求めます.
6個正解で1位5個正解で2位4個正解で3位2個正解で5位
1つ以下に打たれたら6位です.
7対を引いた数字は等号を求めることができる.
const high = win_num+zeros <2 ? 6 : 7-(win_num+zeros);
最高ランク
正しい数字+0の個数が2より小さい場合は、6、または7-正しい数字+0の個数を返します.
const low = win_num <2 ? 6 : 7-win_num;
最下位
正しい数字が2より小さい場合は、6、または7-正しい数字を返します.
highが6以上の場合、highは1になります.
3つの演算子を熟知しなければなりません.