在編程中,string與對象之間的轉換是常見的需求。本文將從不同維度詳細闡述string轉對象的相關知識,包括string轉對象數組、string轉對象list、string轉化json對象、string轉對象方法、string轉json對象、string轉對象原始方法、string轉map對象、string轉object對象、string轉list對象數組、js對象轉string等。
一、string轉對象數組
將一個string按照指定的分隔符分割成一個對象數組。
/** * 將string轉為對象數組 * @param {string} str 需要轉換的字符串 * @param {string} separator 分隔符 * @returns {object} 對象數組 */ function stringToObjectArray(str, separator) { const arr = str.split(separator); const objArr = arr.map(item => ({ value: item })); return objArr; }
該方法通過split()函數將輸入的string按照指定的分隔符分割成數組,然後通過map()函數將每一個元素轉換為一個對象,並將其放入一個新的數組中返回。
二、string轉對象list
將一個string轉換為對象的list。
/** * 將string轉為對象list * @param {string} str 需要轉換的字符串 * @param {string} separator 分隔符 * @returns {object} 對象list */ function stringToObjectList(str, separator) { const arr = str.split(separator); const objList = arr.map(item => ({ value: item, next: null })); objList.reduce((prev, cur) => (prev.next = cur)); return objList[0]; }
該方法也是首先將輸入的string按照指定的分隔符分割成數組,然後通過map()函數將每一個元素轉換為一個只有value屬性的對象,並將其放入一個新的數組中。
接着採用reduce()函數,將數組中的對象連接成一個鏈表,每一個對象的next指向後一個對象,最後返回鏈表的第一個對象。
三、string轉化json對象
將一個string轉換為json對象。
/** * 將string轉為json對象 * @param {string} str 需要轉換的字符串 * @returns {object} json對象 */ function stringToJson(str) { return JSON.parse(str); }
JSON.parse()函數可以將滿足JSON格式要求的string轉換為json對象。
四、string轉對象方法
將一個string轉換為對象方法。
/** * 將string轉為對象方法 * @param {string} str 需要轉換的字符串 * @returns {function} 對象方法 */ function stringToObjectFunction(str) { return eval('(' + str + ')'); }
eval()函數可以將一個字符串解析成JS代碼並運行,從而實現將一個string轉換為一個函數。
五、string轉json對象
將一個string轉換為json對象。
/** * 將string轉為json對象 * @param {string} str 需要轉換的字符串 * @returns {object} json對象 */ function stringToJson(str) { return JSON.parse(str); }
JSON.parse()函數可以將滿足JSON格式要求的string轉換為json對象。
六、string轉對象原始方法
將一個string轉換為對象的原始方法。
/** * 將string轉為對象的原始方法 * @param {string} str 需要轉換的字符串 * @returns {object} 對象 */ function stringToObject(str) { const obj = {}; const strArr = str.split(';'); strArr.forEach(item => { if (item) { const arr = item.split(':'); obj[arr[0]] = arr[1]; } }); return obj; }
該方法針對輸入的string格式進行解析,並將其轉換為一個對象。
該方法首先將輸入的string按照指定格式進行切割,然後遍歷切割後的數組,對每個元素進行處理。元素通過split()函數進一步切割,將其分為一個key-value對,最後將其作為一個屬性放入新的對象中。
七、string轉map對象
將一個string轉換為map對象。
/** * 將string轉為map對象 * @param {string} str 需要轉換的字符串 * @param {string} separator 分隔符 * @returns {object} map對象 */ function stringToMap(str, separator) { const arr = str.split(separator); const map = new Map(); arr.forEach((item, index) => { map.set(index, item); }); return map; }
該方法將輸入的字符串按照指定的分隔符進行分割,並將每個元素放入新創建的map對象中,key值為該元素在數組中的index,value為該元素本身。
八、string轉object對象
將一個string轉換為一個普通的object對象。
/** * 將string轉為普通object對象 * @param {string} str 需要轉換的字符串 * @param {string} separator 分隔符 * @returns {object} 普通object對象 */ function stringToNormalObject(str, separator) { const arr = str.split(separator); const obj = {}; arr.forEach((item, index) => { obj[index] = item; }); return obj; }
該方法處理方式類似於string轉map對象,只不過此處是將元素放入一個普通的對象中,key值為該元素在數組中的index,value為該元素本身。
九、string轉list對象數組
將一個string轉換為一個對象屬性為數組類型的list對象。
/** * 將string轉為對象屬性為數組類型的list對象 * @param {string} str 需要轉換的字符串 * @param {string} separator1 每條數據分隔符 * @param {string} separator2 每條數據中的item分隔符 * @returns {object} 對象屬性為數組類型的list對象 */ function stringToObjectArrayPropertyList(str, separator1, separator2) { const arr1 = str.split(separator1); const list = []; arr1.forEach(item => { const arr2 = item.split(separator2); list.push({ value: arr2 }); }); return list; }
該方法首先將輸入的字符串按照指定的分隔符分割得到一個數組,然後遍歷這個數組,將每個元素再按照另一個指定分隔符進行切割為一個數組。
接着將每個切割後的數組作為一個對象的屬性存放在list數組中,最後返回list數組。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/154050.html