javascript - Javascript/jQuery 从每个循环中获取先前的数组值
问题描述
我有这些数据数组dataTimeName
{"imsak":"04:44","fajr":"04:54","sunrise":"06:15","dhuhr":"12:17","asr":"15:40","maghrib":"18:19","isha":"19:31"}
和 JS
$.each(dataTimeName,function(key, val)
{
var current = "15:40";
var previousArray = ""; //<-- how to get the previous from current?
});
我的问题是如何从当前列表中获取先前的15:40
值dataTimeName
?这意味着,我将在is
之前获得先前的值。15:40
12:17
var dataTimeName = {"imsak":"04:44","fajr":"04:54","sunrise":"06:15","dhuhr":"12:17","asr":"15:40","maghrib":"18:19","isha":"19:31"};
$.each(dataTimeName,function(key, val)
{
var current = "15:40";
var previousArray = ""; //<-- how to get the previous from current?
alert(val);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
解决方案
您有一个排序数组,因此您可以访问它的先前索引:
let dataTimeName = {"imsak":"04:44","fajr":"04:54","sunrise":"06:15","dhuhr":"12:17","asr":"15:40","maghrib":"18:19","isha":"19:31"};
let current = "15:40"
// sorted array
let item_index = Object.values(dataTimeName).findIndex(v=>v===current);
let previousArray=Object.entries(dataTimeName).filter((_,index)=>index<item_index);
console.log(previousArray);
// general
console.log(
Object.entries(dataTimeName)
.filter(([key,value])=>parseInt(value.replace(':', '')) < parseInt(current.replace(':', '')))
)
// And if you need the result be a json object like first one:
console.log(
Object.entries(dataTimeName)
.reduce((r,[key,value])=>{
if (parseInt(value.replace(':', '')) < parseInt(current.replace(':', ''))) r[key]=value;
return r;
}
,{})
)
// And if you need only the previous time:
let prev = Object.values(dataTimeName).filter((_,index)=>index<item_index)?.pop();
console.log(prev);
推荐阅读
- python - Python 返回列表的总和,其中 5 计为双倍,5 之后的数字计为四倍
- amazon-web-services - 如何将 Snowflake 作为应用程序后端数据库进行快速搜索
- python - 如何将一列中基于不同类别的数据行提取到单独的文本文件中?
- python - 在迁移学习 ValueError 中:无法将 NumPy 数组转换为张量
- scalardb - 如何使用 Cassy 备份工具恢复到不同的环境?
- javascript - 如何从 fetch 返回数据并将数据用于另一个函数
- python - 为什么我的 Django 管理员没有加载 css?
- html - 顺风旋转木马
- docker - 在 Docker 中创建外部层以避免将其推送到私有注册表
- javascript - 为什么我会收到“...不是 HTMLButtonElement 的函数”错误?