javascript - 如何在 JavaScript 中最有效地对带有日期时间的字典数组进行合并和排序?

标签 javascript

假设我有以下 3 个数组,它们按 exercisedateandtime 升序排序:

var listA = [
  {name: "Mike", exercisedateandtime: 1299233593000, exercise: "Jumping Jacks"}, 
  {name: "Mike", exercisedateandtime: 1299237012000, exercise: "Running"}
];

var listB = [
  {name: "Charles", exercisedateandtime: 1299233712000, exercise: "Swimming"},
  {name: "Charles", exercisedateandtime: 1299233831000, exercise: "Swimming"},
  {name: "Charles", exercisedateandtime: 1299240620000, exercise: "Swimming"}
];

var listC = [
{name: "William", exercisedateandtime: 1299237320000, exercise: "Fishing"},
{name: "William", exercisedateandtime: 1299237611000, exercise: "Motor Boating"},
{name: "William", exercisedateandtime: 1299305420000, exercise: "Cycling"}
];

合并这些列表的最有效方法是什么,以便我得到的结果数组listD也按exercisedateandtime升序排序?是否可以创建一个接受任意数量数组的函数? (注意:虽然提供的样本很小,但理想的方法应该是处理大型列表。)

var listD = [
{name: "Mike", exercisedateandtime: 1299233593000, exercise: "Jumping Jacks"},
{name: "Charles", exercisedateandtime: 1299233712000, exercise: "Swimming"},
{name: "Charles", exercisedateandtime: 1299233831000, exercise: "Swimming"},
{name: "Mike", exercisedateandtime: 1299237012000, exercise: "Running"},
{name: "William", exercisedateandtime: 1299237320000, exercise: "Fishing"},
{name: "William", exercisedateandtime: 1299237611000, exercise: "Motor Boating"},
{name: "Charles", exercisedateandtime: 1299240620000, exercise: "Swimming"},
{name: "William", exercisedateandtime: 1299305420000, exercise: "Cycling"}
];

最佳答案

var listD = listA.concat(listB, listC).sort(function(a, b) {
    return a.exercisedateandtime - b.exercisedateandtime
});

关于javascript - 如何在 JavaScript 中最有效地对带有日期时间的字典数组进行合并和排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17334371/

相关文章:

javascript - 使用键作为标题和值将对象集合转换为 CSV

JavaScript slider 不起作用?

javascript - 将 JS 中的日期从一个时区转换为另一个时区

php - 如何在进行mysql查询之前识别停用词

javascript - Three.js 检测 webgl 支持并回退到常规 Canvas

javascript - jquery ajax不提供pdf文件

javascript - 应用程序在找不到父级时崩溃

javascript - Fabric.js 中的动画颜色

javascript - 如何在不同名称的输入中使用 jQuery 验证插件?

javascript - 为什么我的动态确认框只能工作一次?