返回字符串中第一个只出现一次的字母

"Hello World, Hello Blog"

Posted by wudimingwo on December 15, 2018

版本1.0

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
var str = 'zajkdhgajskdhu';
			function returnFirstStr (str) {
				var strArr = str.split('');
				var len = strArr.length;
				var arr = [];
				var obj = {};
				for(var i = 0;i < len; i++) {
				  if(!obj[strArr[i]]) {
				    obj[strArr[i]] = 1;
				    arr.push(strArr[i]);
				  }else {
				    obj[strArr[i]] += 1;
				  }
				}
				var len1 = arr.length;
				for(var j = 0; j < len1;j++) {
				  if(obj[arr[j]] == 1) {
				    return arr[j];
				  }
				}
				return 'cant find'
			}
			
			console.log(returnFirstStr(str));

版本2.0 我这么感觉这两个都写得很蠢呢

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
var str = 'zajkdhgajskdhu';
			function returnFirstStr (str) {
				var strArr = str.split('');
				var arr = [];
				var obj = {};
				strArr.forEach(function (item) {
					if(!obj[item]) {
					  obj[item] = 1;
					  arr.push(item);
					} else {
					  obj[item] += 1;
					}
				})
				var result;
				arr.forEach(function (item) {
				  console.log(obj[item]);
					if(obj[item] == 1) {
					  result === undefined ? result = item : result;
					}
				})
				
				return result === undefined ? 'cant find' : result;
			}
			
			console.log(returnFirstStr(str));