从映射对象中查找首尾索引的技术求助
获取映射对象的第一个和最后一个索引(键)
提取对象键数组
首先用Object.keys()方法提取出对象的所有键,ES6+环境下该方法返回的数组会保留键的插入顺序。假设你的对象名为dateMap:
const dateMap = { '13-2-2022': [ { "name":"abc", "date":"13-2-2022" }, { "name":"xyz", "date":"13-2-2022" } ], '15-2-2022': [ { "name":"azx", "date":"15-2-2022" }, { "name":"qwe", "date":"15-2-2022" } ], '16-2-2022': [ { "name":"azx", "date":"16-2-2022" }, { "name":"qwe", "date":"16-2-2022" }, { "name":"qpe", "date":"16-2-2022" } ] }; const keys = Object.keys(dateMap);
获取首尾键
通过数组索引直接获取第一个和最后一个键:
const firstKey = keys[0]; // 结果:'13-2-2022' const lastKey = keys[keys.length - 1]; // 结果:'16-2-2022'
额外提示
- 如果对象可能为空,先判断
keys.length > 0再获取首尾键,避免索引越界报错。 - 若需要按日期排序后再取首尾,可以先对键数组做排序处理:
// 将日期字符串转成标准日期对象后排序 const sortedKeys = keys.sort((a, b) => new Date(a.split('-').reverse().join('-')) - new Date(b.split('-').reverse().join('-'))); const sortedFirstKey = sortedKeys[0]; const sortedLastKey = sortedKeys[sortedKeys.length - 1];
内容的提问来源于stack exchange,提问作者Dev
相关产品推荐
相关产品推荐

