编码题:实现一个评星方法

128 阅读1分钟
// 编码题:实现一个评星方法
// 例如
// 1. 可根据传入的评分和总数,返回评星结果(用 ★ 和 ☆ 描述)
// 2. 评分必选项,四舍五入,总数可选,大于0的整数,默认为5
// 3. 对于评分为空或小于0、评分大于总数、总数小于0或总数非整数的情况,返回'error'

// 示例:

function getRate(num1, num2 = 5) {
    // arr1 ★
    // arr2 ☆
    if (
        typeof num1 !== 'number' ||
        typeof num2 !== 'number' ||
        num1 > num2 ||
        num1 < 0 ||
        num2 < 0 ||
        (num2 + '').includes('.')
    ) {
        return 'error';
    }

    return '★'.repeat(num1) + '☆'.repeat(num2 - Math.round(num1));
}
console.log(getRate(4)); // ★★★★☆
console.log(getRate(4, 8)); // ★★★★☆☆☆☆
console.log(getRate(3.4)); //  ★★★☆☆
console.log(getRate(5, 2)); // 'error'
console.log(getRate(-2)); // 'error'
console.log(getRate(3, 5.5)); // 'error'
console.log(getRate(-Infinity)); // 'error'
console.log(getRate(-Infinity, Infinity)); // 'error'