JavaScript中,排序2数组依赖性 [英] javascript, sort 2 array dependently

查看:78
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆