只出现一次的数字


给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。

说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?

function singleNumber(nums) {
    for(let i = 0;i < nums.length;i++){
        let item = nums[i];
        nums.splice(i,1);
        if(nums.indexOf(item) == -1){
            return item;
        }
        nums.splice(i,0,item);
    }
};