前端如何高效统计后台返回数组中重复数据项的次数?

前端如何高效统计后台返回数组中重复数据项的次数?

前端高效处理后台返回数组的重复数据统计

本文介绍如何高效处理后台返回的包含重复数据的数组,并根据指定字段(例如“NO”字段)统计重复项的次数,最终在前端页面展示每个项目的重复次数。

问题:开发者收到包含“NO”字段的数组数据,需要根据“NO”字段的值判断重复项,并添加“重复次数”字段显示每个“NO”值出现的次数。原代码在处理重复数据时,每次获取新数据都会导致所有项目的“探测次数”字段变化,这不是预期结果。

解决方案:使用reduce方法高效处理数组。以下代码片段演示如何实现:

let list = [    { DF: 343, Fstep: 0.2, NO: 1004 },    { DF: 344, Fstep: 0.2, NO: 1005 },    { DF: 345, Fstep: 0.2, NO: 1004 },    { DF: 346, Fstep: 0.2, NO: 1004 },    { DF: 347, Fstep: 0.2, NO: 1006 },    { DF: 348, Fstep: 0.2, NO: 1005 }];let data = []; // 使用data代替newArr,更清晰let timer = setInterval(() => {    // 模拟后端每3秒返回一条数据    let newData = list.shift(); // 使用shift从list数组中取出一条数据    if (!newData) {        clearInterval(timer);        return;    }    updateData(newData);}, 3000);function updateData(newItem) {    data = data.reduce((acc, item) => {        if (item.NO === newItem.NO) {            // 找到重复项,更新计数            return [...acc.slice(0, acc.indexOf(item)), { ...item, count: item.count + 1 }, ...acc.slice(acc.indexOf(item) + 1)];        } else {            // 没有重复项,添加到数组            return [...acc, item];        }    }, data);    if (data.findIndex(item => item.NO === newItem.NO) === -1) {        data.push({...newItem, count: 1});    }    console.log(data);}

这段代码使用reduce方法迭代数组,根据NO字段判断重复项。找到重复项则更新count字段;否则添加新项,并将count设置为1。 setInterval模拟后端每3秒返回一条数据。 与原代码相比,此代码更简洁高效,避免了不必要的重新计算。 shift()方法从数组头部移除元素,模拟数据流。 此方案假设数据顺序无关紧要,如果顺序影响结果,需要调整代码逻辑。 使用data代替newArr,使代码更易理解。

立即学习“前端免费学习笔记(深入)”;

此方法有效解决了原问题中重复计数的问题,确保每个NO值的计数只在发现重复时更新,避免了所有项计数都变化的情况。

以上就是前端如何高效统计后台返回数组中重复数据项的次数?的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1563778.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月22日 08:36:45
下一篇 2025年12月22日 08:37:01

相关推荐

  • React应用打包:如何使用react-app-rewired避免代码压缩?

    react 应用构建:保持代码可读性,轻松修改静态页面 在使用 react-app-rewired 构建 React 应用时,如何避免代码压缩以方便后续修改?本文提供解决方案,帮助您交付易于维护的静态页面。 为了方便他人修改静态页面,避免代码压缩是关键。直接提供源码是最直接的解决方案,但若受限于某些…

    2025年12月22日
    000
  • 如何基于字符串纠错结果对文本进行高亮显示?

    基于字符串纠错结果,对文本进行高亮显示,提升用户阅读体验。本文将通过一个实际案例,详细讲解实现方法。 假设文本:“芸南市气象台暴雨橙色色预警信号,目前降雨云团已东北移,对芸南市影响减弱,请主意防范降水过后可能引发的次生灾害”经纠错后,得到以下JSON数据: { “leader”: [], “org”…

    2025年12月22日
    000
  • 浮动布局下如何实现多个元素的垂直居中?

    在浮动布局下实现多元素垂直居中 本文将探讨如何在使用浮动布局的场景下,实现多个子元素在父元素中的垂直居中对齐。问题源于一个使用了浮动布局的HTML结构,希望在不使用Flex或Grid布局的情况下,让浮动子元素在父元素中垂直居中。 原始代码中,父元素#wrapper设置了宽度和高度,并使用::befo…

    好文分享 2025年12月22日
    000
  • 微信H5自定义分享,为何电脑端图标缺失?

    微信h5自定义分享:电脑端图标缺失问题详解 在微信H5开发中,自定义分享功能在电脑端失效是一个常见问题。本文将分析一个实际案例:手机端微信分享标题和图标正常显示,但电脑端仅显示标题,图标缺失。 该案例使用了微信分享接口的旧版和新版方法(updateAppMessageShareData、update…

    2025年12月22日
    000
  • 微信H5自定义分享图标在电脑端失效了怎么办?

    微信h5自定义分享图标在电脑端失效?排查指南 微信H5自定义分享功能在电脑端失效是一个常见问题。本文将分析此问题,并提供解决方法。 问题: 许多开发者发现,微信H5自定义分享内容在手机端正常显示,但在电脑端微信却失效,通常表现为自定义图标无法显示,标题正常。 开发者尝试了旧版(onMenuShare…

    2025年12月22日
    000
  • Spring Boot项目XML报错但程序运行正常,登录时却抛出NullPointerException异常是怎么回事?

    spring boot项目xml报错,登录抛出nullpointerexception异常分析及解决方法 项目XML配置文件存在错误提示,但程序启动正常,却在localhost登录时抛出NullPointerException异常,错误堆栈信息指向UserController.java的第23行lo…

    2025年12月22日
    000
  • 为什么body上使用Flex布局无法实现子元素垂直居中?

    flex 布局应用于 body 元素时,子元素垂直居中失效的原因分析 在使用 Flex 布局时,开发者经常会遇到一些问题,例如:将 Flex 布局应用于 body 元素后,子元素无法实现垂直居中。本文将分析此问题。 问题描述:一个包含 inner 元素的 outer 元素,通过设置 outer 元素…

    2025年12月22日
    000
  • Element UI表单动态校验:如何解决异步数据导致的校验规则错乱和提示文案残留问题?

    element ui表单动态校验及异步数据导致的校验问题 在使用Element UI的el-form组件进行表单校验时,如果校验规则依赖异步接口返回的数据,且接口响应较慢,则可能出现校验规则错乱,例如:初始校验规则为必填,但接口返回后变为非必填,虽然必填星号消失,但必填提示文案却残留。本文分析并解决…

    2025年12月22日
    000
  • Element UI表单动态校验:如何解决数据延迟导致的校验规则闪烁问题?

    element ui表单动态校验:巧妙解决数据延迟导致的校验规则闪烁 在使用Element UI的el-form组件进行表单动态校验时,如果后端接口响应较慢,可能会出现校验规则闪烁的问题。例如,一个字段的必填属性(required)因数据回显延迟而发生变化,导致校验规则在短时间内出现不一致,影响用户…

    2025年12月22日
    000
  • JavaScript对象如何转换为包含id、name和子对象数组的新对象数组?

    本文介绍如何将一个javascript对象转换为特定结构的对象数组。原始对象结构如下: const obj = { “a”: [“a1”, “a2”], “b”: [“b1”, “b2”, “b3”] // 子数组长度不固定}; 目标是将其转换为: const list = [ { id: 1, n…

    2025年12月22日
    000
  • CSS relative定位居中:为什么总是失败?

    css相对定位居中:为何总是失败? 许多开发者在使用CSS布局时,会发现相对定位(relative)无法完美实现元素居中。本文通过一个案例分析,解释relative定位与绝对定位(absolute)、固定定位(fixed)的差异,揭示relative定位为何在某些情况下无法实现垂直居中。 我们来看一…

    2025年12月22日
    000
  • 网页批注如何实现Y轴位置的自适应避免重叠?

    巧妙解决网页批注y轴重叠:自适应算法详解 本文介绍一种类似Word的网页批注功能实现方案,重点在于如何通过算法避免批注垂直方向上的重叠。 核心是设计一个算法,根据已有的批注信息,智能计算新批注的最佳垂直位置。 理想的批注布局需兼顾两种情况:批注间距较大时,新批注应尽可能靠近关联文本;间距较小时,新批…

    2025年12月22日
    000
  • XML配置文件报错,程序运行正常却登录失败怎么办?

    xml文件报错但程序运行正常,登录后却出现后台错误 在开发过程中,我们经常会遇到这样的问题:XML配置文件虽然有标红报错,但程序却能正常运行,然而在访问特定功能,例如登录时,却抛出异常。本文将针对一个案例,分析XML文件报错与运行时NullPointerException异常之间的关联,并给出解决方…

    好文分享 2025年12月22日
    000
  • 如何用CSS实现父容器中两个子div的居中重叠显示?

    如何让父容器中的两个子div水平垂直居中并重叠显示?本文将演示如何使用css技巧,实现一个较大div和一个较小div在父div中居中,并使小div覆盖在大div之上。 为了达到重叠效果,我们需要巧妙运用position: absolute和margin: auto等属性。 首先,父div需要设置po…

    2025年12月22日
    000
  • Vim下Emmet CSS缩写展开失效怎么办?

    vim中emmet css缩写展开失败的解决方案 许多Vim用户依赖Emmet插件提升编码效率,但有时Emmet-vim插件无法正确展开CSS缩写。本文将分析一个常见问题:使用Emmet-vim编写CSS时,缩写如bd5#0s和c#ff无法正常展开。 问题描述:用户尝试使用Emmet缩写,例如bd5…

    2025年12月22日
    000
  • 如何用CSS实现两个大小不同的div在父容器中居中叠加?

    如何在一个父容器中,将两个大小不同的子div实现居中叠加显示?本文将详细讲解如何利用css技巧,实现两个大小不一的div在父容器内水平垂直居中,并让其中一个div覆盖在另一个div之上。 首先,我们需要构建HTML结构。父容器div包含两个子div,分别命名为inner1和inner2,方便后续CS…

    2025年12月22日
    000
  • 前端如何统计后台返回数组中重复数据的次数?

    高效统计前端数组中重复数据:基于reduce方法的解决方案 本文介绍一种高效方法,用于统计后台返回数组中重复数据的次数,并避免因数据分批返回导致的计数错误。 假设后台返回的数据包含重复的NO字段,我们需要在前端对这些数据进行去重并统计每个NO字段出现的次数。 问题:直接计数方法在处理连续数据流时,重…

    2025年12月22日
    000
  • CSS相对定位为什么无法精确居中?

    css相对定位居中难题:深入探讨position属性的差异 许多前端开发者在使用CSS布局时,常常会遇到相对定位(position: relative)无法精确居中元素的问题。本文将通过一个案例分析position: relative、position: absolute和position: fix…

    2025年12月22日
    000
  • 如何修改ECharts环状图中间文字的颜色?

    自定义echarts环状图中间文字颜色 在使用ECharts制作环状图时,常常需要对环状图中间的文字进行个性化设置,其中修改文字颜色是一个常见需求。本文将针对“如何修改ECharts环状图中间文字颜色”这一问题进行详细解答。 问题描述:用户希望修改ECharts环状图中间的文字颜色,但不知道如何操作…

    好文分享 2025年12月22日
    000
  • 服务器空闲后首次访问慢,是什么原因导致的?

    服务器空闲后首次访问慢,页面加载时间长的问题排查 很多网站都遇到过这样的情况:服务器长时间未被访问后,第一次访问页面加载速度异常缓慢,而后续访问则恢复正常。本文将针对这个问题,深入探讨可能的原因。 问题描述中,用户展示了服务器空闲一段时间后,首次访问页面加载缓慢的现象。页面文档加载时间明显延长,而后…

    好文分享 2025年12月22日
    000

发表回复

登录后才能评论
关注微信