在 JavaScript 中从数组中形成序列
javascriptweb developmentfront end technologyobject oriented programming更新于 2024/1/5 22:36:17
假设我们有一个像这样的排序数字数组,其中可以有连续的数字。
const arr = [1, 2, 3, 5, 7, 8, 9, 11];
我们需要编写一个接受此类数组的 JavaScript 函数。
我们的函数应该为该数组形成一个序列。该序列应该是这样的,对于数组的所有连续元素,我们只需写入起始和结束数字,用破折号 (-) 替换中间的数字,并保持所有其他数字不变。
因此,对于上述数组,输出应如下所示 −
const output = '1-3,5,7-9,11';
示例
其代码为 −
const arr = [1, 2, 3, 5, 7, 8, 9, 11];
const buildSequence = (arr = []) => {
let pointer;
return arr.reduce((acc, val, ind) => {
if (val + 1 === arr[++ind]) {
if (pointer == null ) {
pointer = val;
};
return acc;
};
if (pointer) {
acc.push(`${pointer}-${val}`);
pointer = null;
return acc;
}
acc.push(val);
return acc;
}, []).join(',');
}
console.log(buildSequence(arr));
输出
控制台中的输出将是 −
1-3,5,7-9,11
相关文章
有用资源
javascript 参考教程 - 该教程包含有关 javascript 的更多信息:https://www.cainiaomax.com/javascript/

