阵列相同的长度挑战
#javascript #初学者 #数组 #面试

我要谈论几天前我在一次采访中提出的挑战。
面试官告诉我,我的解决方案对他没有意义,在采访中,我无法使它起作用,因为我很紧张,但是在我尝试挑战的同一晚上,它确实有效。
这是Cuestion中的挑战:
给定三个参数是一个函数,另外两个数组,您必须使用两个数组返回给定功能,如果您必须确保数组是相同的lenght,并且如果不使它们与它们相同的Lenght与较短的一个,如果它们是相同的,则将其返回。

这是我的代码:

const myFunc = (fn, a0, a1) => {
  let arr0 = [];
  let arr1 = [];
  if(a0.length < a1.length){
   for(let i = 0; i < a0.length; i++){
     arr0 += a0[i];
     arr1 += a1[i]
}
    return fn(arr0, arr1)
}else if(a1.length < a0.length){
   for(let i = 0; i < a1.length; i++){
         arr0 += a0[i];
         arr1 += a1[i] 
}
   return fn(arr0, arr1)
}else{
  for(let i = 0; i < a1.length; i++){
     arr0 += a0;
     arr1 += a1;
}
   return fn(arr0, arr1)
}
}

在给定“ FN”函数的示例中,将返回一个串联两个数组的数组。因此,我假设无需做其他事情,而只是将其作为参数传递。
但是只是为了使我的自我确定我实际上是按照以下方式编写的:

const fn = (a0, a1) => {
  let concatenatedArr = [];
  concatenatedArr += [a0, a1]
  return [concatenatedArr]
}

甚至类似这样的东西

const fn = (a0, a1) => {
  let concatenatedArr = [] 
  concatenatedArr = a.concat(b)
  return concatenatedArr
}

我了解我的方法不是最有效的,但我不会认为这是错误的。

希望有人发现它有帮助。

劳塔罗