javascript - 是否有更好的方法通过从给定季度倒数来创建季度列表?

标签 javascript

我已经完成了这个函数,它创建了一个季度数组,从指定的季度开始倒数 x 个季度。

数组中的最后一项是引用季度。

例如,引用季度 2 和计数 9,这将产生 [2, 3, 4, 1, 2, 3, 4 , 1, 2];

我的函数可以工作,但我想知道是否有更简单、更优雅的解决方案。

代码如下:

/// Counts back x from specified quarter
/// Parameters:
/// @param countFrom   -- the reference quarter to count back from
/// @param count       -- count
///
/// @returns array     -- the array of quarters
function getQuarterList(countFrom, count) {
	var ret = [];
	for (var i = 0; i < count; i++){
		var z = countFrom - i;
		while (z < 1) {
			z = z + 4;
		}
		ret.splice(0, 0, z);
	}

	return ret;
}

var quarterList = getQuarterList(2, 9);
console.log(quarterList);

最佳答案

您可以计算起始值

function getQuarterList(countFrom, count) {
    var offset = (countFrom - count) % 4 + 4;
    return Array.apply(null, { length: count }).map(function (_, i) {
        return (i + offset) % 4 + 1;
    });
}

console.log(getQuarterList(2, 9));
console.log(getQuarterList(3, 7));
console.log(getQuarterList(1, 2));
console.log(getQuarterList(4, 9));

关于javascript - 是否有更好的方法通过从给定季度倒数来创建季度列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39079896/

相关文章:

javascript - 有更好的方法在 html 中打印选中的复选框吗?

javascript - 更改视频源而不停止 HTML5 视频

javascript - 使用 range 操作选择

javascript - 绑定(bind) ng-options 数组的一个属性

javascript - 图像选择器jquery插件:How to get img-src of selected images(multiple selection case)

javascript - 使用 setInterval 时 undefined variable

javascript - 如何在 javascript 中使用 PluginResult 对象

javascript - 使用 HTML5/JavaScript 访问 Amazon S3 上的文件

javascript - 如何提高由 Javascript 或 JQuery 制作的组件的速度?

javascript - 如何使用 node-http-proxy 作为多个安全服务器的代理服务器