根据长度循环多个列表

时间:2020-10-19 14:38:14

标签: javascript angular typescript list sorting

在我的代码中,我有6个不同大小的对象列表。

我需要按照从小到大的特定顺序对它们进行遍历。

var list_1 = [...]    // length 24
var list_2 = [...]    // length 4
var list_3 = [...]    // length 3
var list_4 = [...]    // length 4
var list_5 = [...]    // length 11
var list_6 = [...]    // length 2

// Need code here for loop each list in order asc
list_6.forEach(...)   // length 2
list_3.forEach(...)   // length 3
list_2.forEach(...)   // length 4
list_4.forEach(...)   // length 4
list_5.forEach(...)   // length 11
list_1.forEach(...)   // length 24

有人有一个简单的解决方案吗?谢谢

2 个答案:

答案 0 :(得分:6)

您可以将列表添加到数组中,对其进行排序并执行循环

[list, list2, ...]
    .sort((a, b) => a.length - b.length)
    .forEach(array => array.forEach(...))

答案 1 :(得分:1)

将列表放入另一个列表中并对其进行排序。

const list1 = [1, 2, 3, 4],
  list2 = [1],
  list3 = [1, 2, 3, 4, 5, 6, 7];

let listOfLists = [list1, list2, list3].sort((a, b) => a.length - b.length);

console.log(listOfLists);
listOfLists.forEach(list => {
  list.forEach(itemInList => {
    console.log(itemInList);
  });
});

请参见StackBlitz示例。