目錄:數組
/** 藉助臨時變量 */ function swap(str1, str2) { const temp = str1; str1 = str2; str2 = temp; }
/** 解構賦值 */ [a, b] = [b, a]; /** 對象 */ {a,b} = {a:b,b:a}
/** 加法 只適用於數字 */ a += b; b = a - b; a -= b; /** * 加法 簡寫 * 基本類型的值,保存的就是這個值 */ a = a + b - (b = a);
/** 藉助數組實現 */ a = [a, b][1]; b = [a, b][0]; // 簡寫 b = [a, (b = a)][0];
/** 藉助數組實現 */ a = { a:a, b:b }['a']; b = { a:a, b:b }['b']; // 簡寫 b = {a:a,b:(a=b)}['a']
// [...str]取代str.split('') const reverseString = str => [...str].reverse().join('');
/** * 常規方法 * @param {string} s * @return {string} */ function swap(s) { if (s.length <= 1) return s; let result = ''; for (let i = s.length - 1; i >= 0; i -= 1) { result += s[i]; } return result; }
/* * @param {string} s string of (n) length * @return {string} returns a reversed string */ function reverseString(s) { // edge case if (s.length <= 1) return s; // split and swap const arr = s.split(''); let start = 0; let end = arr.length - 1; while (start < end) { // swap characters const temp = arr[start]; arr[start] = arr[end]; arr[end] = temp; // move towards middle start += 1; end -= 1; } return arr.join(''); }
/** * @param {string} s * @return {string} */ function reverseWords(s) { return s.replace(/^\s+/, '') // 去除頭部多餘空格 .replace(/\s+$/, '') // 去除尾部多餘空格 .replace(/(\w+)\s+/, '$1 ') // 合併中間多餘空格爲一個 .split(/\s/)// 拆分爲字符串 .reverse() // 反轉字符串 .join(''); }