今天,一个同学去面试,发回来题目让我帮忙看看,题目如下:
用js写出一个函数,找出数组中没有重复数字的总和
例如:数组 [3,4,1,2,5,6,6,5,3,4,3];没有重复的总和为1+2=3
这个题目与简单去重有点不大一样,一看挺简单,但是容易掉坑
关键字:重复的都不要
我的代码如下:
function ArrayItemAdd() {
var testArray = [3,4,1,2,5,6,6,5,3,4,3];
var sum = 0, sum1 =0;
//sum是重复的数字的和,sum1是数组的总和
for (var i = 0; i < testArray.length; i++){
for (var j = 0; j < testArray.length; j++){
//如果i位置的数字与非i的数字相等就将他的值加入sum1,并且跳出循环
if ((testArray[i] == testArray[j])&&(i != j)){
sum += testArray[i];
break;
}
}
sum1 += testArray[i];
}
//sum与sum1相减的值就是非重复的数字之和
console.log(sum1-sum);
}
函数有待优化,在此只是简单说明其算法思路而已_
网友评论