JS数组转对象

// 原始数据
const arr = [{ label: 'title_one', val: '参数值1' }, { label: 'title_two', val: '参数值2' }];

// 转成以下格式:
obj = { title_one: '参数值1', title_two: '参数值2' };

方法

/** 数组转对象
 * @param {Object} e 原始数组
 * @param {Object} key 键
 * @param {Object} val 值
 */
arrTransferObj(e, key, val) {
	return e.reduce((obj, item) => {
		obj[item[key]] = item[val];
		return obj;
	}, {}); // 数组的reduce方法,使数组的obj初始值为{},将数组中每一个对象所需的值,分别作为对象中的键与值
}

简写

/** 数组转对象
 * @param {Object} e 原始数组
 * @param {Object} key 键
 * @param {Object} val 值
 */
arrTransferObj(e, key, val) {
    // 数组的reduce方法,使数组的obj初始值为{},将数组中每一个对象所需的值,分别作为对象中的键与值
	return e.reduce((obj, item) => ((obj[item[key]] = item[val]), obj), {});
}

使用方法

const arr = [{ label: 'title_one', val: '参数值1' }, { label: 'title_two', val: '参数值2' }];
console.log(this.arrTransferObj(arr, 'label', 'val'));

JS对象转数组

// 原始数据
obj = { title_one: '参数值1', title_two: '参数值2' };
			
// 转成以下格式:
const arr = [{ label: 'title_one', val: '参数值1' }, { label: 'title_two', val: '参数值2' }];

方法

/** 对象转数组
 * @param {Object} e 原始数组
 * @param {Object} key 键
 * @param {Object} val 值
 */
objTransferArr(e, key, val) {
	let result = [];
	for (let item in e) {
		result.push({
			[key]: item,
			[val]: e[item]
		});
	}
	return result;
}

使用方法

const obj = { title_one: '参数值1', title_two: '参数值2' };
console.log(this.objTransferArr(obj, 'label', 'val'));
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐