当前位置:首页 > JavaScript

喊7的次数重排js实现

2026-01-31 10:12:48JavaScript

实现喊7次数重排的JavaScript方法

需要统计数字序列中数字7出现的次数,并按出现次数从高到低对数字进行重排。以下是具体实现步骤:

统计数字7出现次数

function countSevens(arr) {
  return arr.reduce((acc, num) => {
    const str = num.toString();
    const count = (str.match(/7/g) || []).length;
    return acc + count;
  }, 0);
}

创建数字到7出现次数的映射

喊7的次数重排js实现

function createCountMap(arr) {
  const map = new Map();
  arr.forEach(num => {
    const str = num.toString();
    const count = (str.match(/7/g) || []).length;
    map.set(num, count);
  });
  return map;
}

按7出现次数排序

function sortBySevens(arr) {
  const countMap = createCountMap(arr);
  return [...arr].sort((a, b) => {
    const countA = countMap.get(a);
    const countB = countMap.get(b);
    return countB - countA || a - b;
  });
}

使用示例

喊7的次数重排js实现

const numbers = [17, 27, 37, 77, 70, 7, 123];
const sorted = sortBySevens(numbers);
console.log(sorted); // [77, 7, 70, 17, 27, 37, 123]

处理特殊情况 对于数字0或负数的情况,可以添加验证:

function validateInput(arr) {
  return arr.every(num => Number.isInteger(num) && num >= 0);
}

性能优化 对于大型数组,可以考虑使用更高效的统计方法:

function optimizedCount(str) {
  let count = 0;
  for (let i = 0; i < str.length; i++) {
    if (str[i] === '7') count++;
  }
  return count;
}

这些方法组合起来可以有效地实现数字按包含7的次数进行重排的功能,同时考虑了各种边界情况和性能优化。

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

相关文章

vue实现js休眠

vue实现js休眠

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

js实现分页

js实现分页

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

js如何实现继承

js如何实现继承

原型链继承 通过将子类的原型指向父类的实例实现继承。子类实例能够访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Paren…

js实现验证

js实现验证

验证表单输入 使用JavaScript验证表单输入是常见的需求。可以通过监听表单提交事件,检查输入字段是否符合要求。 document.getElementById('myForm').addEve…

js实现类

js实现类

JavaScript 实现类的几种方式 JavaScript 是一种基于原型的语言,但在 ES6 之后引入了 class 语法糖,使得实现类更加直观。以下是几种常见的实现方式: 使用构造函数 传统…

js实现换肤

js实现换肤

使用CSS变量实现换肤 通过CSS变量可以轻松实现主题切换功能。CSS变量在根元素中定义,通过JavaScript动态修改这些变量值。 :root { --primary-color: #34…