带值的Javascript数组

带值的Javascript数组,javascript,arrays,conditional-statements,output,Javascript,Arrays,Conditional Statements,Output,下面的代码是一个javascript面试问题。我应该得到输出为[5,1,2,3,4]。任何人都可以帮我解决这个问题 const input = [1,2,3,4,5] const n = 4; var output = [] console.log(output) 根据我的理解,问题是当'n'是给定的索引时,您应该能够从数组的索引n中删除元素,并将其插入到数组的最开始处。由于数组是基于0的,这意味着如果n=4,则根据给定数组,第n个索引处的元素是5 为此,您可以执行以下操作: 在第n个

下面的代码是一个javascript面试问题。我应该得到输出为[5,1,2,3,4]。任何人都可以帮我解决这个问题

const input = [1,2,3,4,5]
const n = 4;



var output = []

console.log(output)

根据我的理解,问题是当'n'是给定的索引时,您应该能够从数组的索引n中删除元素,并将其插入到数组的最开始处。由于数组是基于0的,这意味着如果n=4,则根据给定数组,第n个索引处的元素是5

为此,您可以执行以下操作:

  • 在第n个索引上使用拼接方法,并将1作为第2个参数传递,因此仅删除第n个索引处的元素

  • 然后使用input上的unshift方法删除并添加数组开头的第n个元素。Unshift返回数组的长度,但您希望将整个数组存储在输出中

  • 因此,将输入数组存储在输出变量中

  • 为了更好地理解,请运行下面的代码片段。如果我对你的问题的理解不正确,请告诉我,这样我可以相应地更新我的答案

    const输入=[1,2,3,4,5]
    常数n=4;
    常数[el]=输入拼接(n,1)//数组分解
    输入。取消移位(el);
    常量输出=输入;
    console.log(输出)
    const输入=[1,2,3,4,5]
    常数n=4
    输入拼接(0,0,输入[n])
    输入拼接(n+1,1)
    变量输出=[…输入]
    
    console.log(输出)
    ,无需修改输入数组:

    const输入=[1,2,3,4,5]
    常数n=4;
    变量输出=[]
    output=[input[n],input.slice(0,n)].flat()
    
    console.log(输出)
    输出结果背后的逻辑是什么?您应该如何使用
    n
    input
    来获得结果?
    output=[5,1,2,3,4]
    -好了。对于任何更具动态性的问题,我们需要知道实际需求是什么,以及在实现它时您遇到了什么困难。我们必须找到使用变量4将输出转换为5,1,2,3,4的逻辑奇怪的采访问题,也许他们希望您将数组向后移动
    n
    次:
    [1,2,3,4,4,5]->[2,3,4,5,1]->[3,4,5,1,2]->[4,5,1,2,3]->[5,1,2,3,4]
    ,但他们至少应该给您更多的输入/outputs@Mohamedfaruk为什么不“移动最后一个元素
    n
    positions back”?也可能是这样。但将最后一个元素n位置向后移动意味着将所有其他元素也向前移动,这就是为什么我不认为这是面试问题的明显选择。然而,如果面试官想知道OP是否知道如何使用数组和数组原型函数,那么我的解决方案的问题将是一个好问题。我不同意。面试的问题很糟糕,问这个问题的人都应该感到羞耻。这里的问题从广义上讲也是不好的,因为我们不知道它要求我们做什么。这是不清楚和无法回答的。未来的游客将如何从中受益?他们在谷歌上搜索“如何使用数组做一些事情”,不知何故来到了这里,不知何故他们设法找到了他们需要做的任何事情?这个问题不清楚,没有任何指导,无法得出正确答案,也无法衡量正确答案是什么。这是一个可怕的问题,在面试时,你要尽可能清楚,不要给那些已经承受了很大压力的候选人施加太大的压力。面试官使用这些问题可能会让应聘者犯错误,这与面试的内容恰恰相反。这使他们成为一个糟糕的面试官。更糟糕的是,如果它实际上是作为“压力访谈”的一部分故意的话。“问这个问题的人”是对OP进行采访并提出这个问题的人(至少我认为OP在采访中看到了这个问题)。你没有使用
    n