lovelmh13/One-question-a-day

请把俩个数组 [A1, A2, B1, B2, C1, C2, D1, D2] 和 [A, B, C, D],合并为 [A1, A2, A, B1, B2, B, C1, C2, C, D1, D2, D]

Opened this issue · 0 comments

let arr1 = ['A1', 'A2', 'B1', 'B2', 'C1', 'C2', 'D1', 'D2']
let arr2 = ['A', 'B', 'C', 'D']

function concatArr (arr1, arr2) {
	let arr = arr1.concat(arr2);
	return arr.sort((a, b) => {
		var A = a.charCodeAt();	// A1 A2 A都是只转第一个A的askii码,都是65,A会排在A1 A2后面,以此类推
		var B = b.charCodeAt();
		return A-B;
	});
}
console.log(concatArr(arr1, arr2));

/* ---------------- 别人的方案 ---------------- */
function concat (arr1, arr2) {
	let a2 = arr2.map(item => item + 3);
	let a3 = [...arr1, ...a2].sort().map(item => {
		if (item.includes('3')) {
			return item.split('')[0]
		}
		return item;
	});
	return a3;
}
console.log(concat(arr1, arr2));