我要谈论几天前我在一次采访中提出的挑战。
面试官告诉我,我的解决方案对他没有意义,在采访中,我无法使它起作用,因为我很紧张,但是在我尝试挑战的同一晚上,它确实有效。
这是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
}
我了解我的方法不是最有效的,但我不会认为这是错误的。
希望有人发现它有帮助。
劳塔罗