JavaScript中,排序2数组依赖性 [英] javascript, sort 2 array dependently
本文介绍了JavaScript中,排序2数组依赖性的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
几个小时我一直在试图找出如何排序2数组依赖性。
for hours i've been trying to figure out how to sort 2 array dependently.
比方说,我有2个阵列。
Let's say I have 2 arrays.
第一个:
array1 = ['zzzzz', 'aaaaaa', 'ccccc'];
和第二个
array2 = [3, 7, 1];
我排序的第一个与 array1.sort();
它变得 [AAAAAA,CCCCCC,ZZZZZZ
]
现在我想的是,第二个变成 [7,1,3]
我觉得这是很简单,但我想要实现这一点的东西更复杂,即时通讯新的,我一直混淆的东西。
I think it's quite simple but i'm trying to implement this in something a little more complex, im new and i keep mixing up things.
感谢
推荐答案
我要压缩他们进入的一个对象数组,然后排序与自定义排序回调,那么解压缩他们回到你想要的两个数组
I would "zip" them into one array of objects, then sort that with a custom sort callback, then "unzip" them back into the two arrays you wanted:
var array1 = ['zzzzz', 'aaaaaa', 'ccccc'],
array2 = [3, 7, 1],
zipped = [],
i;
for(i=0; i<array1.length; ++i) {
zipped.push({
array1elem: array1[i],
array2elem: array2[i]
});
}
zipped.sort(function(left, right) {
var leftArray1elem = left.array1elem,
rightArray1elem = right.array1elem;
return leftArray1elem === rightArray1elem ? 0 : (leftArray1elem < rightArray1elem ? -1 : 1);
});
array1 = [];
array2 = [];
for(i=0; i<zipped.length; ++i) {
array1.push(zipped[i].array1elem);
array2.push(zipped[i].array2elem);
}
alert('Sorted arrays:\n\narray1: ' + array1 + '\n\narray2: ' + array2);
下面是一个工作拨弄。
这篇关于JavaScript中,排序2数组依赖性的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文