2018-11-11 给出一个数和数组,请列出数组中一对数结果等

2018-11-11  本文已影响3人  五大RobertWu伍洋
  1. 在mongo shell 下 使用edit命令来玩一下鹿丽的面试题
    第一,确保环境变量有 EDITOR的值。 export EDITOR=vim
    第二,mongo shell连接上后输入 edit fun 即可编辑fun这个对象,无论是复制还是写个函数都可以哦!

  2. 第一版代码如下:

function show(){
num=15;
array=[1,2,3,5,6,7,8,9,10,14];
except=[];
array.forEach((v,i)=>{
if(array.indexOf(num-v)>-1 && except.indexOf(v)<0) {
print(v+ ","+(num-v));
except.push(num-v);
}
})
}

注意两个地方的用值一定是互补的:except.push(num-v);except.indexOf(v)<0

  1. 第二版去掉上面if语句的大括号,将使用过的值排除掉下一次被当做差值的可能:
function show(){
num=15;
array=[1,2,3,5,6,7,8,9,10,14];
except=[];
array.forEach((v,i)=>{
except.push(v);
if(array.indexOf(num-v)>-1 && except.indexOf(num-v)<0) print(v+ ","+(num-v));
})
}
  1. 第四版,去掉if使用&&代替:
function show(){
num=15;
array=[1,2,3,5,6,7,8,9,10,14];
except=[];
array.forEach((v,i)=>{
except.push(v);
array.indexOf(num-v)>-1 && except.indexOf(num-v)<0 && print(v+ ","+(num-v));
})
}

注意: forEach()接收的是一个函数,其次,该函数中第一个参数是值,第二个才是索引。这个和jQuery中的forEach()函数在参数顺序上相反!

上一篇下一篇

猜你喜欢

热点阅读