【问题标题】:Javascript array with values [closed]带有值的Javascript数组[关闭]
【发布时间】:2020-11-11 10:52:04
【问题描述】:

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

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



var output = []

console.log(output)

【问题讨论】:

  • 输出结果背后的逻辑是什么?你应该用ninput 做什么来得到结果?
  • output = [5,1,2,3,4] - 你去。对于更动态的东西,我们需要知道什么实际需求是什么,以及你在实现它时遇到了什么困难。
  • 我们必须找到使用变量 4 将输出作为 5,1,2,3,4 的逻辑
  • 奇怪的面试问题,也许他们希望你将数组向后移动n 次:[1,2,3,4,5] -> [2,3,4,5,1] -> [3,4,5,1,2] -> [4,5,1,2,3] -> [5,1,2,3,4],但他们至少应该给你更多的输入/输出
  • @Mohamedfaruk take your pick

标签: javascript arrays conditional-statements output


【解决方案1】:

不修改输入数组:

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

var output = []

output= [input[n],input.slice(0,n)].flat()

console.log(output)

【讨论】:

    【解决方案2】:

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

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

    1. 在第 n 个索引处使用 splice 方法并将 1 作为第二个参数传递,因此您只删除第 n 个索引处的元素。

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

    3. 因此,您将输入数组存储在输出变量中。

    请运行以下 sn-p 以获得更好的理解。如果我对您的问题的理解不正确,请告诉我,以便我可以相应地更新我的答案。

    const input = [1,2,3,4,5]
    const n = 4;
    
    const [el] = input.splice(n,1); //array destructuring
    input.unshift(el);
    const output = input;
    
    console.log(output)

    【讨论】:

    • 为什么不是“将最后一个元素n位置向后移动”?
    • 也可以这样。但是将最后一个元素向后移动 n 位置意味着将所有其他元素也向前移动,这就是为什么我不认为这是面试问题的明显选择。但是,如果面试官想看看 OP 是否知道他使用数组和数组原型函数的方式,那么我的解决方案的问题将是一个好问题。国际海事组织。
    • 我不同意。面试问题很糟糕,问这个问题的人应该感到羞耻。这里的问题也很糟糕,因为我们不知道它对我们的要求是什么。这是不清楚和无法回答的。未来的访客将如何从中受益?他们在谷歌上搜索“如何用数组做某事”,不知何故来到这里,不知何故他们设法找到了他们需要做的任何事情?
    • 问题不清楚,没有指导,无法得出正确答案或衡量正确答案的方法。这是一个可怕的问题,在面试中你希望尽可能清楚,而不是对已经承受很大压力的候选人施加太大压力。面试官使用这样的问题会使候选人犯错,这应该与面试的内容完全相反。这使他们成为一个糟糕的面试官。如果它实际上是那些“压力面试”的一部分,那就更糟糕了。
    • 一位OP发布的“面试问题”。 “问的人”是对 OP 进行采访并提出该问题的人(至少我认为 OP 在采访中看到了这一点)。
    【解决方案3】:

    const input = [1,2,3,4,5]
    const n = 4
    
    input.splice(0, 0, input[n])
    input.splice(n+1, 1)
    
    var output = [...input]
    console.log(output)

    【讨论】:

    • 你没有使用n
    猜你喜欢
    • 2014-02-12
    • 1970-01-01
    • 2012-04-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-03
    • 1970-01-01
    • 2019-07-29
    相关资源
    最近更新 更多