【发布时间】:2019-03-11 18:16:32
【问题描述】:
我有一个数组对象,对象中的每个值都是多个数字序列的数组。
我想删除那些计数小于 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()
}
【问题讨论】:
-
which are having less sequence from the array是什么意思? -
数组中的空格从不代表序列中断
-
如何定义“序列”?我在这里只看到 2 个数组。如上所述,这个问题不清楚。
-
如果我理解正确,您只是想更改第 0 个数组?当你说 2 到 4 不超过 10 时,你的意思是
2+3+4<10? -
啊,我明白了,所以您在第一个中将序列定义为连续整数?第二个是怎么回事?看起来您在
12和13之间添加了一个换行符,而根据您的第一个定义,它应该是一个单独的序列。
标签: javascript arrays object data-structures ecmascript-6