假设我有以下 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/