Javascript 如何比较两个foreach循环数据
我试图比较两个Javascript 如何比较两个foreach循环数据,javascript,jquery,Javascript,Jquery,我试图比较两个foreach循环数据,并在div中显示相关数据。在下面的脚本中,只比较第一行的数据 更多详细信息:我想在当前日期的两个时间范围内跟踪用户到达,我从一个表中获取用户名、城市和到达时间。和其他表中的预期城市时间范围,如您在响应数据中所看到的,在比较用户到达时间时,仅比较第一行(用户),忽略其他行 我想在与用户的相关城市比较日期时显示一个按钮。如果用户到达日期介于城市旅行开始时间和结束时间之间,则按钮应显示已到达标签,否则在途中显示标签 响应={ “结果1”:[{ “姓名”:“迈克”
foreach
循环数据,并在div
中显示相关数据。在下面的脚本中,只比较第一行的数据
更多详细信息:我想在当前日期的两个时间范围内跟踪用户到达,我从一个表中获取用户名、城市和到达时间。和其他表中的预期城市时间范围,如您在响应数据中所看到的,在比较用户到达时间时,仅比较第一行(用户),忽略其他行
我想在与用户的相关城市比较日期时显示一个按钮。如果用户到达日期介于城市旅行开始时间
和结束时间
之间,则按钮应显示已到达
标签,否则在途中显示标签
响应={
“结果1”:[{
“姓名”:“迈克”,
“城市”:“伦敦”,
“阿里瓦卢时间”:“2020-06-06 18:31:57”
}, {
“名称”:“米兰”,
“城市”:“纽约”,
“阿里瓦卢时间”:“2020-06-06 20:21:44”
}],
“结果2”:[{
“城市”:“伦敦”,
“开始时间”:“08:00:00”,
“结束时间”:“12:00:00”
}, {
“城市”:“纽约”,
“开始时间”:“06:00:00”,
“结束时间”:“12:00:00”
}]
}
response.result1.forEach(函数(元素){
var city=element.city;
response.result2.forEach(函数(e){
const start=e.开始时间;
const end=e.end\u时间;
常量检查=element.arival\u时间;
const[日期,时间]=支票分割(“”);
const startDate=`${date}${start}`;
const endDate=`${date}${end}`;
const from=新日期(startDate).getTime();
const to=新日期(endDate).getTime();
const target=新日期(检查).getTime();
常数数组=e.city;
const isInArray=数组。包括(城市);
如果(isInArray==true){
如果(target>=from&&target我发现您的代码有两个问题:
result1[0]。city
是'London'
(大写),但result2[0]。city
='London'
(小写),因此您不会看到Mike的任何按钮
在内部循环中,对$('.action').append(…)
的调用没有任何效果,因为在内部循环完成之前,
不存在
以下是缓冲按钮并将其插入
的更新代码:
response.result1.forEach(函数(元素){
var city=element.city;
var buttons='';//按钮缓冲区
response.result2.forEach(函数(e){
const start=e.开始时间;
const end=e.end\u时间;
常量检查=element.arival\u时间;
const[日期,时间]=支票分割(“”);
const startDate=`${date}${start}`;
const endDate=`${date}${end}`;
const from=新日期(startDate).getTime();
const to=新日期(endDate).getTime();
const target=新日期(检查).getTime();
常数数组=e.city;
const isInArray=数组。包括(城市);
如果(isInArray==true){
如果(目标>=来自目标(&T)
response.result1.forEach(function(element) {
var city = element.city;
var buttons = ''; // buffer for buttons
response.result2.forEach(function(e) {
const start = e.start_time;
const end = e.end_time;
const check = element.arival_time;
const [date, time] = check.split(" ");
const startDate = `${date} ${start}`;
const endDate = `${date} ${end}`;
const from = new Date(startDate).getTime();
const to = new Date(endDate).getTime();
const target = new Date(check).getTime();
const array = e.city;
const isInArray = array.includes(city);
if (isInArray == true) {
if (target >= from && target <= to) {
buttons += ('<button type="button" class="med_action pull-right btn btn-success"> Arrived</button>'); // append to buttons var
} else {
buttons += ('<button type="button" class="med_action pull-right btn btn-warning"> on the way</button>'); // append to buttons var
}
}
});
var html = '<div class="details">' +
'<h3><i class="fa fa-exclamation-circle"></i><span> ' + element.Name + '</span></h3>' +
'<div class="form-inline">' +
'<label> city : </label><span> ' + element.city + '</span>' +
'</div>' +
'</div>' +
'<div class="action">' + buttons + '</div>' +
'</div>'; // Insert buttons
$('#container').append(html);
});