首页 > 解决方案 > JavaScript:如何对字典中的值进行排序以输出匹配的值并输出不匹配的值以显示空结果

问题描述

我有一组数据如下
左:右:

1 1
2 2
3 3
5 4
7 6
9 8
1 10

我希望输出/结果是这个
结果

1 / 1
2 / 2
3 / 3
- / 4
5 / -
- / 6
7 / -
- / 8
9 / -
10 / 10

我已经将我的两组数据组织成一个字典

键:1,值{左:1 右:2} 等

我如何对这些进行排序并根据价值进行匹配?任何帮助表示赞赏。

标签: javascriptarraysobject

解决方案


// Assuming you have two sorted arrays
left = [1,2,3,5,7,9,10]
right = [1,2,3,4,6,8,10]

let i=0;j=0;
// Assuming you only have to print the result
while(i<left.length && j<right.length) {
  if(left[i] == right[j])
    console.log(left[i++] + ' / ' + right [j++]);
  else if(left[i] < right [j])
    console.log(left[i++] + ' / -');
  else
    console.log('- / ' + right[j++]);
}
while(i<left.length) {
    console.log(left[i++] + ' / -');
}
while(j<right.length) {
    console.log('- / ' + right[j++]);
}

请注意,如果数组未排序,则有比对两个数组进行排序更优化的方法来实现这一点。


推荐阅读