首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

将数组中的对象分开,并在新数组中为每个id按id排序

的问题,可以通过以下步骤来解决:

  1. 首先,遍历原始数组,将具有相同id的对象分组到一个新的对象中。可以使用一个字典(Map)来存储每个id对应的对象数组。
  2. 创建一个新的数组,用于存储分组后的对象。
  3. 遍历字典中的每个键值对,将值(对象数组)按照id进行排序。
  4. 将排序后的对象数组依次添加到新的数组中。

下面是一个示例代码,用于实现上述步骤:

代码语言:txt
复制
function separateAndSortObjects(arr) {
  // 创建一个字典用于存储分组后的对象
  const groupedObjects = new Map();

  // 遍历原始数组,将具有相同id的对象分组到字典中
  arr.forEach(obj => {
    const id = obj.id;
    if (groupedObjects.has(id)) {
      groupedObjects.get(id).push(obj);
    } else {
      groupedObjects.set(id, [obj]);
    }
  });

  // 创建一个新的数组用于存储分组后的对象
  const sortedArray = [];

  // 遍历字典中的每个键值对,将值按照id进行排序并添加到新的数组中
  groupedObjects.forEach((objects, id) => {
    const sortedObjects = objects.sort((a, b) => a.id - b.id);
    sortedArray.push(...sortedObjects);
  });

  return sortedArray;
}

// 示例用法
const originalArray = [
  { id: 2, name: 'Object 2' },
  { id: 1, name: 'Object 1' },
  { id: 2, name: 'Object 3' },
  { id: 3, name: 'Object 4' },
  { id: 1, name: 'Object 5' }
];

const sortedArray = separateAndSortObjects(originalArray);
console.log(sortedArray);

以上代码将会输出以下结果:

代码语言:txt
复制
[
  { id: 1, name: 'Object 1' },
  { id: 1, name: 'Object 5' },
  { id: 2, name: 'Object 2' },
  { id: 2, name: 'Object 3' },
  { id: 3, name: 'Object 4' }
]

这个问题涉及到了数组的分组和排序操作。在实际开发中,可以根据具体需求选择合适的数据结构和算法来解决类似的问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券