所以我有两个数组-arrOne = [10,2,3,14,1]和arrTwo = [1,2,3,5,4];
我想对arrTwo进行排序,并对arrOne使用相同的索引更改,即arrTwo = [1、2、3、4、5],arrOne [10、2、3、1、14]。
我一直在尝试通过合并排序来实现它,但是它不起作用。递归妨碍了我执行我的意图。
需要注意的是,我一次获取的数据是两个整数,并使用前面的数组将它们推入单独的数组中,这意味着-
也许可以使用其他数据结构,但是我不知道。
我将go用作标记,因为我想同时用两种语言解决它。
答案 0 :(得分:1)
创建一个包含2个数组的值的2d数组,并在排序后提取2个数组。
let arrOne = [10, 2, 3, 14, 1],
arrTwo = [1, 2, 3, 5, 4];
arrOne
// create 2d array which contains both array values
.map((v, i) => [v, arrTwo[i]])
// sort the combined array based on first array element
.sort(([a], [b]) => a - b)
// update the main arrays
.forEach(([v1, v2], i) => {
arrOne[i] = v1;
arrTwo[i] = v2;
})
console.log(arrOne, arrTwo)
答案 1 :(得分:0)
要解决这个问题,我不会使用两个数组。
我会将一个对象推送到单个数组。使它更加结构化,以保持数据“在一起”
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cccae1234ab1 myImage "dotnet myImage" 3 hours ago Up 3 hours 0.0.0.0:8080->443/tcp weird_name
要添加其他输入:
const data = [{
one: 10,
two: 1
},
{
one: 2,
two: 2
},
{
one: 3,
two: 3
},
{
one: 14,
two: 5
},
{
one: 1,
two: 4
}
然后按“两个”键排序
data.push({
one: 200,
two: 6
})
请注意,排序将使数组发生变化,但是如果这是一个问题,则可以复制。无论如何,猜测对原始数组进行排序都不是问题。