数组重复数据处理

ZionHH 2020-05-21 05:43:58
例:

// 处理这样一组数据
data: [
{interval: 100, score: 1},
{interval: 95, score: 0},
{interval: 90, score: 0},
{interval: 85, score: 0},
{interval: 80, score: 1},
{interval: 75, score: 0},
{interval: 70, score: 0},
{interval: 65, score: 0},
{interval: 60, score: 1},
{interval: 55, score: 0},
{interval: 50, score: 1},
{interval: 45, score: 1}
]



// 中间相邻 score 为 0 的长度如果≥3,就把他合并
data: [
{interval: 100, score: 1},
{interval: 95~85, score: 0},
{interval: 80, score: 1},
{interval: 75~65, score: 0},
{interval: 60, score: 1},
{interval: 55, score: 0},
{interval: 50, score: 1},
{interval: 45, score: 1}
]
...全文
118 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
天际的海浪 2020-05-21
  • 打赏
  • 举报
回复

var data = [
 {interval: 100, score: 1},
 {interval: 95, score: 0},
 {interval: 90, score: 0},
 {interval: 85, score: 0},
 {interval: 80, score: 1},
 {interval: 75, score: 0},
 {interval: 70, score: 0},
 {interval: 65, score: 0},
 {interval: 60, score: 1},
 {interval: 55, score: 0},
 {interval: 50, score: 1},
 {interval: 45, score: 1}
];
var index = data.length-1;
for (var i = data.length-1; i >= 0; i--) {
	if (i==0 || data[i-1].score != data[index].score) {
		var n = index-i+1;
		if (n >= 3)
			data.splice(i, n, {interval: data[i].interval+"~"+data[index].interval, score: data[index].score});
		index = i-1;
	}
}
console.table(data);

87,904

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧