gpt4 book ai didi

javascript - 从 javascript 对象中删除较少的序列计数

转载 作者:行者123 更新时间:2023-12-03 00:02:38 25 4
gpt4 key购买 nike

我有一个数组对象,对象中的每个值都是多个数字序列的数组。

我想删除那些计数小于 10 的序列。

在给定的输入中,第 0 个值有 3 个序列,2 到 4 不超过 10 个序列号,因此我们需要将其删除,剩余 2 个序列数超过 10。

我在下面的输入中添加了空格仅供引用,以便您可以看到该数组中存在序列中断,找到该序列的计数,如果计数小于 10,则删除该序列。

输入:

{ '0': [ 2, 3, 4,    7, 8, 9, 10,11, 12, 13, 14, 15, 16, 17, 18, 19, 20,     22, 23, 24, 25,26,27,28,29,30,31,32 ],
'3': [ 0, 1,2,3,4,5,6,7,8,9,10,11,12,13, 15,16,17,18,22,23,24 ] }

输出:

{
'0': [7, 8, 9, 10, 11,12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 24, 25,26,27,28,29,30,31,32],
'3': [ 0,1,2,3,4,5,6,7,8,9,10,11,12,13]

我无法完成逻辑

for (var key in emptyMap) {
let count = [];
let initialVal = emptyMap(key)[0];
removeEmptyMap[key] = [];
for (let i = 1; i < emptyMap(key).length; i++) {

if ((emptyMap(key)[i] === initialVal + 1)) {

count[key].push(emptyMap(key)[i])
} else if (count.pop() < 10) {
initialVal = emptyMap(key)[i];
} else {
initialVal = emptyMap(key)[i];
}
}
console.log()

}

最佳答案

首先,您需要创建一个包含每个序列的数组数组。然后返回值大于10数组的组合。将此方法应用于 obj

的每个 key

let obj = { '0': [ 2, 3, 4,    7, 8, 9, 10,11, 12, 13, 14, 15, 16, 17, 18, 19, 20,     22, 23, 24, 25,26,27,28,29,30,31,32 ],
'3':
[ 0, 1,2,3,4,5,6,7,8,9,10,11,12,13, 15,16,17,18,22,23,24 ] }

function getSeq(arr,len){
let seq = [[]];
for(let i = 0;i<arr.length;i++){
seq[seq.length - 1].push(arr[i]);
if(arr[i] !== arr[i+1] - 1){
seq.push([])
}
}
return seq.reduce((ac,a) => a.length < len ? ac: [...ac,...a],[])
}

for(let key in obj){
obj[key] = getSeq(obj[key],10)
}
console.log(obj)

关于javascript - 从 javascript 对象中删除较少的序列计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55108010/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com