Javascript 下划线将对象转换为数组并按键名排序
我一直在使用下面的代码来转换计数数组中的大量日期列表,然后可以在简单的折线图中使用这些数据。我遇到的问题是按年份和周数对值进行排序。当我有像Javascript 下划线将对象转换为数组并按键名排序,javascript,arrays,sorting,underscore.js,momentjs,Javascript,Arrays,Sorting,Underscore.js,Momentjs,我一直在使用下面的代码来转换计数数组中的大量日期列表,然后可以在简单的折线图中使用这些数据。我遇到的问题是按年份和周数对值进行排序。当我有像[{201501:20},{201502:20},{201451:20},{201452:20}]这样的数据时,我需要按键名将数组排序为以下格式[{201451:20},{201452:20},{201501:20},{201502:20}。他们只需使用\uuu.values() 如何使用下划线对数组进行排序,我已经尝试了一些方法,但在这一点上我完全不知所措
[{201501:20},{201502:20},{201451:20},{201452:20}]
这样的数据时,我需要按键名将数组排序为以下格式[{201451:20},{201452:20},{201501:20},{201502:20}
。他们只需使用\uuu.values()
如何使用下划线对数组进行排序,我已经尝试了一些方法,但在这一点上我完全不知所措
var graphData = _.chain(thisYearFiltered)
// map each string like '2014-01-01 00:00:00' using moment.js to the ISO Week. ISO weeks are used because they run Monday to Sunday
.map(function(date){
return moment(date, "YYYY-MM-DD HH:mm:ss").isoWeekYear() + moment(date, "YYYY-MM-DD HH:mm:ss").isoWeek();
})
// Manipulate weeks numbers [201423,201423,201423,201423,201424] into a count for each like [{201423:4 },{201424:1}]
.countBy(function(num) {
//console.log(num);
return num;
})
// Pull out the values of the objects and discard the week number. [{23:4 },{24:1}] to [4,1]
.values()
.value();
我知道这是所有可能的下划线,但我已经撞上了墙,所以任何建议都是欢迎的
我已经研究了
。.sortBy()
,但这似乎需要一个命名键进行排序,在我的例子中,键的名称都是不同的。我可以对第一个键执行类似的操作吗?对于对象,sortBy
还将该键作为第二个参数传递给回调函数,并且仅在对其排序后保留对象的值,因此:
_.chain([201423, 201423, 201423, 201423, 201424]).
countBy(function(n) { return n; }).
sortBy(function(v, k) { return k; }).
value()
给予
对于对象,
sortBy
还将键作为第二个参数传递给回调函数,并且仅在对对象进行排序后保留对象的值,因此:
_.chain([201423, 201423, 201423, 201423, 201424]).
countBy(function(n) { return n; }).
sortBy(function(v, k) { return k; }).
value()
给予
对于对象,
sortBy
还将键作为第二个参数传递给回调函数,并且仅在对对象进行排序后保留对象的值,因此:
_.chain([201423, 201423, 201423, 201423, 201424]).
countBy(function(n) { return n; }).
sortBy(function(v, k) { return k; }).
value()
给予
对于对象,
sortBy
还将键作为第二个参数传递给回调函数,并且仅在对对象进行排序后保留对象的值,因此:
_.chain([201423, 201423, 201423, 201423, 201424]).
countBy(function(n) { return n; }).
sortBy(function(v, k) { return k; }).
value()
给予
谢谢你的时间,祝你有一个美好的一天。谢谢你的时间,祝你有一个美好的一天。谢谢你的时间,祝你有一个美好的一天。谢谢你的时间,祝你有一个美好的一天。