給定一個陣列
A = [1,2,3,5,6,7,8,10,0,1,1,2,4,10,6,7,3],將大于 2 的連續元素分組到子陣列中。所需的輸出是
result = [[2,3,5,6,7,8,10],[2,4,10,6,7,3]]。示例:
A = [1,2,3,5,6,7,8,10,0,1,1,2,4,10,6,7,3]
輸出:result = [[2,3,5,6,7,8,10],[2,4,10,6,7,3]]
有人可以幫忙解答這個問題嗎?
我試過了:
const a = [0, 1, 2, 5, 6, 9];
const result = a.reduce((acc, current) =>
const lastSubArray = acc[acc.length - 1];
console.log(`${acc}-${current}`)
console.log(lastSubArray[lastSubArray.length - 1]);
if (current >2 && lastSubArray[lastSubArray.length - 1]>2) {
acc.push(current);
}
acc[acc.length - 1].push(current);
console.log(acc);
return acc;
}, []);
console.log(result);
uj5u.com熱心網友回復:
您可以使用全域變數來跟蹤索引,以便可以檢測兩個數字之間何時存在間隙,從而允許您添加另一個陣列。結合使用三元運算子可以使代碼更清晰以測驗條件。
const arr = [1, 2, 3, 5, 6, 7, 8, 10, 0, 1, 1, 2, 4, 10, 6, 7, 3];
let lastIdx = -1
const results = arr.reduce((acc, current, idx) =>
(
current > 2 ? (
lastIdx 1 === idx ?
(
lastIdx = idx,
acc[acc.length - 1].push(current),
acc
)
:
(
lastIdx = idx,
[...acc, [current]]
)
) : acc
)
, [])
console.log(results);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/356426.html
標籤:javascript 节点.js 数组
