当前位置:首页 > JavaScript

喊7的次数重排js实现

2026-04-05 02:17:33JavaScript

实现思路

要实现“喊7的次数重排”功能,需要统计数字序列中所有包含7或能被7整除的数字出现的次数,并根据这些次数重新排列原始序列。以下是具体的实现方法。

喊7的次数重排js实现

方法一:遍历统计法

遍历数字序列,统计每个数字是否包含7或能被7整除,记录每个数字的“喊7”次数。根据统计结果重新排列序列。

喊7的次数重排js实现

function reorderBySevenCount(arr) {
    const countMap = new Map();

    // 统计每个数字的喊7次数
    for (const num of arr) {
        let count = 0;
        if (num % 7 === 0) count++;
        if (num.toString().includes('7')) count++;
        countMap.set(num, (countMap.get(num) || 0) + count);
    }

    // 根据喊7次数重新排序
    return arr.sort((a, b) => {
        const countA = countMap.get(a) || 0;
        const countB = countMap.get(b) || 0;
        return countB - countA;
    });
}

// 示例用法
const arr = [7, 14, 21, 17, 27, 3, 5];
console.log(reorderBySevenCount(arr)); // [7, 17, 27, 14, 21, 3, 5]

方法二:预计算法

预先计算每个数字的“喊7”次数,并生成一个包含数字和次数的对象数组,然后根据次数排序。

function reorderBySevenCount(arr) {
    const counted = arr.map(num => {
        let count = 0;
        if (num % 7 === 0) count++;
        if (num.toString().includes('7')) count++;
        return { num, count };
    });

    counted.sort((a, b) => b.count - a.count);
    return counted.map(item => item.num);
}

// 示例用法
const arr = [7, 14, 21, 17, 27, 3, 5];
console.log(reorderBySevenCount(arr)); // [7, 17, 27, 14, 21, 3, 5]

方法三:函数式编程

使用函数式编程风格,通过链式调用实现统计和排序。

function reorderBySevenCount(arr) {
    return arr
        .map(num => ({
            num,
            count: (num % 7 === 0 ? 1 : 0) + (num.toString().includes('7') ? 1 : 0)
        }))
        .sort((a, b) => b.count - a.count)
        .map(item => item.num);
}

// 示例用法
const arr = [7, 14, 21, 17, 27, 3, 5];
console.log(reorderBySevenCount(arr)); // [7, 17, 27, 14, 21, 3, 5]

注意事项

  1. 数字包含7:使用toString().includes('7')判断数字是否包含数字7。
  2. 能被7整除:使用num % 7 === 0判断数字是否能被7整除。
  3. 排序规则:按照“喊7”次数从高到低排序,次数相同的保持原始顺序(稳定排序)。

以上方法均能实现“喊7的次数重排”功能,选择哪种方法取决于具体需求和编码风格偏好。

标签: 次数js
分享给朋友:

相关文章

js实现图片预览

js实现图片预览

使用FileReader API实现图片预览 通过FileReader对象读取用户选择的图片文件并显示预览: const input = document.getElementById('image…

使用js实现

使用js实现

使用JavaScript实现 JavaScript可以通过Math.random()函数生成随机数,结合其他方法可以实现多种随机数生成需求。 // 生成0到1之间的随机小数 const random…

js树实现

js树实现

树的基本概念 树是一种非线性的数据结构,由节点和边组成。每个节点包含一个值和指向子节点的引用。树的顶部节点称为根节点,没有子节点的节点称为叶节点。 树的实现方式 在JavaScript中,树可以通过…

js实现代码雨

js实现代码雨

实现代码雨效果 使用HTML5 Canvas和JavaScript可以轻松实现经典的代码雨效果。以下是完整的实现代码和说明: HTML结构 <!DOCTYPE html> <htm…

js实现按钮点击

js实现按钮点击

实现按钮点击的JavaScript方法 HTML按钮元素 在HTML中创建按钮元素,为其添加id或class以便JavaScript选择: <button id="myButton">点…

js验证码实现

js验证码实现

验证码的基本原理 验证码(CAPTCHA)用于区分人类用户和自动化程序。常见类型包括图形验证码、滑动验证码、短信验证码等。JavaScript 可用于前端验证码的生成和验证逻辑。 图形验证码实现 使…