在编程中,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数组。