当前位置:首页 > 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
分享给朋友:

相关文章

vue实现js休眠

vue实现js休眠

Vue 中实现 JavaScript 休眠 在 Vue 中实现 JavaScript 休眠通常需要使用异步方式,以避免阻塞主线程。以下是几种常见方法: 使用 setTimeout 和 Pro…

js实现分页

js实现分页

分页的基本实现思路 在JavaScript中实现分页功能通常需要结合前端和后端逻辑。前端负责渲染分页控件和处理用户交互,后端负责提供分页数据。 前端分页实现 纯前端分页适用于数据量较小的情况,可以直…

js实现计算器

js实现计算器

实现基础计算器功能 使用JavaScript创建一个基础计算器需要处理数字输入、运算符逻辑和结果显示。以下是一个简单的实现示例: let currentInput = '0'; let previo…

js实现日历

js实现日历

实现日历的基本思路 使用JavaScript实现日历的核心是动态生成日期表格,并处理月份切换逻辑。需要计算当前月的天数、起始星期几,并动态渲染到页面上。 获取当前日期信息 通过Date对象获取当前年…

js实现dh

js实现dh

JavaScript 实现 DH(Diffie-Hellman)密钥交换 Diffie-Hellman(DH)密钥交换是一种安全协议,允许双方在不安全的通信信道上建立一个共享密钥。以下是如何在 Jav…

js实现祖玛

js实现祖玛

实现祖玛游戏的核心思路 祖玛游戏的核心玩法是发射彩色珠子,形成三个或以上相同颜色的珠子即可消除。以下是使用JavaScript实现的基本框架。 游戏初始化 创建画布并初始化游戏状态: const…