春招,秋招甚至是实习,多多少少会面临一些基础的编程题,这些编程题除了一些数据结构的典型情景,但是不能忽略,小看的也有一些基础编程题,如最简单的数组结构就有一些经典的编程题,这里进行简要的总结。
- 数组去重:
function delRepeatObject(arr) {
var resArr = [];
var flag = true;
for(var i =0 ;i < arr.length; i++){
if (resArr.indexOf(arr[i])==-1){
if (arr[i] != arr[i]){//排除NAN,因为如果arr[i]是NAN对象,则resArr.indexOf(arr[i])==-1是成立的
if (flag){//只能放入一个NAN对象到新数组里
resArr.push(arr[i]);//尾插法
flag = false;
}
} else {
resArr.push(arr[i]);
}
}
}
return resArr;
}
- 查找数组中与目标相等的元素的下标
function findAllTarget(arr, target) {
var result=[];
for(var i=0;i<arr.length;i++){
if(arr[i]===target){
result.push(i);//假如一个数组中有多个与目标相等的对象,所以要用数组存起来
}
}
return result;
}
- 查找数组中重复的元素
function findRepeatTarget(arr) {
//先给数组排序,然后如果后一个与前一个相等且未保存,则保存
var a =[], b=[];
a = arr.sort();
for(var i in a){
if(a[i]==a[i-1] && b.indexOf(a[i])==-1) {
b.push(a[i]);
}
}
return b;
}