首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >返回一个数组的函数,该数组中的数字位于特定索引处,具有特定的顺序

返回一个数组的函数,该数组中的数字位于特定索引处,具有特定的顺序
EN

Stack Overflow用户
提问于 2019-02-08 14:52:42
回答 1查看 35关注 0票数 1

我有一个由0,1,2,3,4,5,6,7,8,9组成的数组。我目前使用的是Javascript语言。

然后我想将它简化为一个新的数组,其本身的数字7在索引4处,而数组中的其余数字在该索引之后从最低到最大排序。

这项任务的一个具有挑战性的方面是让低于7的数字在索引4之前进行自我排序。

它必须位于索引4。它不能位于不同的索引。要放在索引4处的目标数字可以是我上面写的数组中的任何数字。

示例:

当我想要将数字7放在索引4时返回的数组:

代码语言:javascript
复制
[3,4,5,6,7,8,9,0,1,2]

当我想要将数字9放在索引4时返回的数组:

代码语言:javascript
复制
[5,6,7,8,9,0,1,2,3,4]

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

代码语言:javascript
复制
  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
  },[])

可以选择对此进行硬编码以获得答案(这是硬编码的解决方案):

代码语言:javascript
复制
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,我不会介意。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-08 15:06:18

这可以使用slice和concat来完成:

代码语言:javascript
复制
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),你会得到:

代码语言:javascript
复制
[3,4,5,6,7,8,9,0,1,2]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54587349

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档