[英]Javascript- Make JSON sort function extensible for Date object
虽然这个函数对字符串和数字工作正常,因为我对 Date 对象使用===
比较运算符,它没有扩展。
function getDataCounted(objects, key) {
let ret = [];
let groups = objects
.reduce((accumulator, element, index, array) => {
if (accumulator.indexOf(element[key]) < 0 &&
array.findIndex(elm => elm[key].getTime() === array[key].getTime()) < index)
accumulator.push(element[key]);
return accumulator;
}, [])
.forEach(group => {
let count = 0;
objects.forEach(object => {
if (object[key] === group) {
count++;
}
});
ret.push([
group,
count
])
});
ret.sort((a, b) => a[0] - b[0]);
return ret;
}
我试过:
let groups = objects
.reduce((accumulator, element, index, array) => {
if (element instanceof Date) {
if (accumulator.indexOf(element[key]) < 0 //
&&
array.findIndex(elm => elm[key].getTime() === array[key].getTime()) < index)
accumulator.push(element[key]);
return accumulator;
}
if (accumulator.indexOf(element[key]) < 0 &&
array.findIndex(elm => elm[key] === array[key]) < index)
accumulator.push(element[key]);
return accumulator;
}, [])
但不是。
替换ret.sort((a, b) => a[0] - b[0]);
和:
ret.sort((a, b) => {
if (a[0] instanceof Date) {
return a[0].getTime() - b[0].getTime();
}
else {
return a[0] - b[0];
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.