【问题标题】:Slice from beginning if array ended javascript如果数组结束 javascript 从头开始​​切片
【发布时间】:2019-07-22 01:09:58
【问题描述】:

所以我正在开发一些过滤器,用户甚至可以从例如“星期五到星期二”中进行选择,但是我如何从日期数组中分割它们

var days = ["monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday"]

那么我如何从索引 5 切片到应该返回的 2:

["friday", "saturday", "sunday", "monday", "tuesday"]

【问题讨论】:

标签: javascript arrays slice


【解决方案1】:

你可以使用

var days = ["monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday"]

const selection = [...days.slice(4), ...days.slice(0, 2)];


console.log(selection);

【讨论】:

    【解决方案2】:

    Friday 位于索引 4 处,因此从索引 4 开始切片,.concat 具有索引 0 到 2 的切片:

    const arr = ["monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday"]
    console.log(arr.slice(4).concat(arr.slice(0, 2)));

    【讨论】:

      【解决方案3】:

      您可以创建一个简单的函数来测试结束是否小于开始并相应地切片:

      let days = ["monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday"]
      
      const wrapslice = (arr, start, end)  =>{
          return end < start 
          ? arr.slice(start).concat(arr.slice(0, end))
          : arr.slice(start, end)
      }
      console.log(wrapslice(days, 5, 2))
      console.log(wrapslice(days, 2, 5))
      console.log(wrapslice(days, 4))

      【讨论】:

        猜你喜欢
        • 2013-07-24
        • 2018-06-24
        • 2019-10-07
        • 1970-01-01
        • 2011-06-13
        • 1970-01-01
        • 2017-12-04
        • 2021-11-28
        • 1970-01-01
        相关资源
        最近更新 更多