您的位置:

从多个方面详细阐述string转对象

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