题目出处:https://leetcode.com/problems/to-lower-case/
题目描述:
implement函数ToLowerCase(),它有一个字符串参数str,并以小写返回相同的字符串
Example 1:
Input: "Hello"
Output: "hello"
Example 2:
Input: "LOVELY"
Output: "lovely"
思路:
直接 return str.toLowerCase()明显就不是题目的本意,题目的本意就是返回字母对应的unicode编码,通过大小写的差值去转化。
var toLowerCase = function(str) {
const DIFF = 'a'.charCodeAt(0) - 'A'.charCodeAt(0);
let strArr = str.split('');
let resultArr = [];
strArr.forEach((item) => {
item = (item >= 'A' && item <= 'Z') ? String.fromCharCode(item.charCodeAt(0) + DIFF) : item;
resultArr.push(item)
});
return resultArr.join('')
};
笔记:
foreach,map这些方法不能改变原始数组,所以要用新数组存起来forEach究竟能不能改变数组的值