js 两个数组比较进行排序数组

js 两个数组比较进行排序数组

原结构

arr1: [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ] //key

arr2:[ 2, 10, 6, 2, 0, 0, 0, 2, 0, 1 ]//数量

排序后:

arr1: [ 4, 5, 6, 8, 9, 0, 3, 7, 2, 1 ] //key

arr2:[ 0, 0, 0, 0, 1, 2, 2, 2, 6, 10 ] //数量

1【js内置组件方式】

//排序逻辑
let arr1 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ];
let arr2 = [2, 10, 6, 2, 0, 0, 0, 2, 0, 1, ];

    let arrs = [];
    arrs = arr1.map((ee, ii) => { //合并成一个数组
    	return [ee, arr2[ii]];
    });
    arrs.sort((xx, yy) => { //排序
    	if (xx[0] > yy[0]) {
    		return 1;
    	} else {
    		return -1;
    	}
    });
    for (let var1 in arrs) { //排序后筛分成独立数组
    	arr111.push(arrs[var1][1]);
    	arr222.push(arrs[var1][0]);
    }

2【原生方式】

let arr1 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ];
let arr2 = [2, 10, 6, 2, 0, 0, 0, 2, 0, 1, ];
let a1 = [];
let a2 = [];
let obj = {};
// 合成队象
for (let i = 0; i < arr1.length; i++) {
	obj[arr1[i]] = arr2[i];
}
let arr = Object.keys(obj);
// 冒泡排序
for (let i = 0; i < arr.length; i += 1) {
	for (let j = 0; j < arr.length - i; j += 1) {
		if (obj[arr[j]] < obj[arr[j + 1]]) {
			[arr[j], arr[j + 1]] = [arr[j + 1], arr[j]];
		}
	}
}
// 提取成数组
for (const item of arr) {
	a1.push(item);
	a2.push(obj[item]);
}
console.log(a1);
console.log(a2);
842 Views
分享你的喜爱
linwute
linwute

我要像梦一样自由,像大地一样宽容;
在艰辛放逐的路上,点亮生命的光芒;
我要像梦一样自由,像天空一样坚强;
在曲折蜿蜒的路上,体验生命的意义;

留下评论

您的邮箱地址不会被公开。 必填项已用 * 标注