/** * 给你一个整数数组 nums 。数组中唯一元素是那些只出现 恰好一次 的元素。 * 请你返回 nums 中唯一元素的 和 。 * * 示例 1: * 输入:nums = [1,2,3,2] * 输出:4 * 解释:唯一元素为 [1,3] ,和为 4 。 * * 示例 2: * 输入:nums = [1,1,1,1,1] * 输出:0 * 解释:没有唯一元素,和为 0 。 * * 解题思路: * 1.用一个Object记录nums中每个元素与其出现的次数(nums[i]为key, 出现次数为value) * 2.遍历Object,求value值为1的项的key的和 */ /** * @param {number[]} nums * @return {number} */ var sumOfUnique = function(nums) { if(nums.length == 1){ return nums[0]; } var obj = {}; for(var i=0;i<nums.length;i++){ if(nums[i] in obj){ obj[nums[i]]++; }else{ obj[nums[i]] = 1; } } return Object.keys(obj).filter(v=>obj[v]==1).reduce((a,b)=>Number(a)+Number(b),0); }; var nums = [1,2,3,2]; console.log(sumOfUnique(nums));