功能,在与特定排序的特定索引返回与一个编号的数组

问题描述 投票:1回答:1

我的[0,1,2,3,4,5,6,7,8,9]的数组。我目前使用JavaScript语言。

然后,我想将其降低到具有7号,本身新阵列,4个指标在,可以在阵列中的数字的其余部分由低到该索引之后最大的排序。

其中的这个任务的挑战性的方面是获得低于7的号码指数4之前订购自己。

它必须是4的索引它不能是在不同的索引处。目标数4置于索引处可以是任何数量我上面写的阵列内。

例:

该阵列返回时,我想有7号索引4:

[3,4,5,6,7,8,9,0,1,2]

该阵列返回时,我想有9号索引4:

[5,6,7,8,9,0,1,2,3,4]

到目前为止,我最好的尝试:

  let state = 7;

  [0,1,2,3,4,5,6,7,8,9].reduce((acc,cur)=>{
    let lastInd = state+5;
    let firstInd = state-4 <0 ? 10+(state-4): state-4;

    return acc
  },[])

有硬编码此得到答案(这是硬编码解决方案)的选项:

let state = 7
let order = [
            [0,1,2,3,4,5,6,7,8,9],
            [1,2,3,4,5,6,7,8,9,0],
            [2,3,4,5,6,7,8,9,0,1],
            [3,4,5,6,7,8,9,0,1,2],
            [4,5,6,7,8,9,0,1,2,3],
            [5,6,7,8,9,0,1,2,3,4],
            [6,7,8,9,0,1,2,3,4,5],
            [7,8,9,0,1,2,3,4,5,6],
            [8,9,0,1,2,3,4,5,6,7],
            [9,0,1,2,3,4,5,6,7,8]
          ];
let stateArray = order.find((e)=>{
  return e.indexOf(state) === 4;
});

我只是认为这将是一个很好的时间杀手和娱乐性和挑战性的问题加以解决。我并不急于得到这个问题的解决,因为我实现了硬编码代码为我的项目,但我一直在想,什么是这个问题的答案,我想有人可能要解决这个问题。

在Java或JS的语言中的解决方案是最适合我的。我还没有学会任何其他语言,但如果能够“翻译”给JS容易,我不会介意。

javascript arrays
1个回答
1
投票

这可以用切片和CONCAT来完成:

const a=[0,1,2,3,4,5,6,7,8,9]
const f=(x)=>
{
    const b=a.slice(x-4)
    const c=a.slice(0,x-4)
    return( b.concat(c))}

所以,如果你f(7)你:

[3,4,5,6,7,8,9,0,1,2]
© www.soinside.com 2019 - 2024. All rights reserved.