【问题标题】:sorting an array in javascript, such that new starting and ending items but they have the same order [duplicate]在javascript中对数组进行排序,以便新的开始和结束项目但它们具有相同的顺序[重复]
【发布时间】:2021-09-30 22:03:48
【问题描述】:

假设我有这个倒序的数字数组:

var days = [6, 5, 4, 3, 2, 1, 0];

我有这个变量:

var startingDay = 4;

如何对数组进行排序,使数组变成这样

console.log(days == [4, 3, 2, 1, 0, 6, 5]);
>> true

??

谢谢!

【问题讨论】:

  • 那不是排序,数组已经排序了。它只是旋转数组。
  • 那我该如何“旋转”它呢?
  • 检查副本。

标签: javascript arrays functional-programming


【解决方案1】:

您可以通过切片和连接两个部分来旋转数组。

var days = [6, 5, 4, 3, 2, 1, 0];
var day = 4;
var idx = days.indexOf(day);
var res = days.slice(idx).concat(days.slice(0, idx));
console.log(res);

您还可以使用unshiftsplice 就地修改数组。

var days = [6, 5, 4, 3, 2, 1, 0];
var day = 4;
days.unshift(...days.splice(days.indexOf(day), days.length));
console.log(days);

【讨论】:

    猜你喜欢
    • 2018-06-03
    • 1970-01-01
    • 2021-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-26
    • 1970-01-01
    • 2017-11-30
    相关资源
    最近更新 更多