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

相关文章

js 实现链表

js 实现链表

链表的基本概念 链表是一种线性数据结构,由一系列节点组成,每个节点包含数据和指向下一个节点的指针。与数组不同,链表在内存中是非连续存储的,插入和删除操作效率较高。 链表的实现 在 JavaScrip…

js实现求导

js实现求导

实现数值求导的方法 在JavaScript中实现求导通常采用数值方法,因为JavaScript不是符号计算语言。以下是常见的数值微分方法: 中心差分法 中心差分法提供较高精度的导数近似:…

js实现跑马灯

js实现跑马灯

实现跑马灯效果 使用HTML和JavaScript可以轻松实现跑马灯效果。以下是两种常见的实现方式: HTML结构 <div id="marquee"> <span>…

js实现放大缩小

js实现放大缩小

使用 CSS transform 实现缩放 通过修改元素的 transform 属性实现平滑缩放效果。CSS 的 scale() 函数可以轻松调整元素大小。 const element = docu…

js和jquery

js和jquery

JavaScript 与 jQuery 的关系与区别 JavaScript 是一种动态编程语言,主要用于网页开发,使网页具有交互性。它是浏览器的原生脚本语言,可以直接在浏览器中运行。 jQuery…

js原生实现vue路由

js原生实现vue路由

使用 History API 实现路由切换 通过 window.history.pushState 和 popstate 事件可以实现前端路由的无刷新跳转。创建一个路由对象管理路径与组件的映射关系。…