这是别人发的一个公司的js的面试题,对于我这个js初学,简直就是不能再复杂。开始思路是这样的,将函数中的重复项移除,不重复项组成一个新数组。但是,这样会导致一些问题。最后,想到了数组中数组项的位置,如果他的第一次出现位置和最后一次出现的位置相等,就说明没有重复项,将它组成新数组,再求和。
<script type="text/javascript"> var num = new Array(3, 4, 1, 2, 5, 6, 6, 5, 4, 3, 6); var newNum = []; for(var i=0; i<num.length; i++){ if(num.indexOf(num[i])==num.lastIndexOf(num[i])){ newNum.push(num[i]); } } var sum = 0; for(var j = 0; j<newNum.length; j++){ sum += newNum[j]; } document.write(sum); </script>
© hanhaisha.com. All Rights Reserved 湘ICP备15009704号-1
梦里不知岁月匆、梦醒不知韶华过