javascript - 如何让这个程序化 JS 变得更加实用呢?

标签 javascript functional-programming

鉴于此函数根据用户设置对数组重新排序...

function getDayNamesInUserOrder() {

    var dayNames = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];
    var weekStartDayIndex = 2; // user has set this to be 2 (Tuesday)

    // remove the first n days from the front of the array...
    var daysSlicedFromStart = dayNames.splice(0, weekStartDayIndex);

    // and stick them onto the end of it.
    var dayNamesInUserOrder = dayNames.concat(daysSlicedFromStart);

    return dayNamesInUserOrder;
}

getDayNamesInUserOrder();
=> ['Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun', 'Mon']

如何在使用更少的状态和变量的同时使其功能更强大?

最佳答案

这个怎么样?

function getDayNamesInUserOrder(offset) {
  var dayNames = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];
  return [0,1,2,3,4,5,6].map(function (i) {
    return dayNames[(i+offset) % 7];
  });
}

关于javascript - 如何让这个程序化 JS 变得更加实用呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29406926/

相关文章:

php - 使类的静态成员成为函数(闭包)不起作用

parsing - John Hughes 的确定性 LL(1) 使用 Arrow 和错误进行解析

functional-programming - 是否有 Python 惯用语用于评估具有短路的函数/表达式列表?

clojure - 如何更好地迭代 Clojure 中的状态(monad?)

javascript - OnClick 事件不适用于 Astro 中的 React 组件

javascript - 使用 AJAX 更新从数据库(mysql)检索的数据

javascript - 使用 enzyme 测试 React Modals - 找不到门户

haskell - Haskell 中的多项式

javascript - 变量从 PHP 转换成 jQuery 形成链接

javascript - Ember.js - 操作未处理错误