在没有嵌套循环的情况下检查和匹配两个数组?



我有两个数组,我想检查和匹配两个数组之间的值,但不要使用嵌套的for循环。可能吗?

ISO system date:   [ '2020', '06', '27' ]
Date from System:  [ '06', '27', '20' ]

我试过这个:

function getFormat(isoDateArr, sysDateArr, sysDateFormat) {
for (let i = 0; i < isoDateArr.length; i++) {
for (let j = 0; j < sysDateArr.length; j++) {
if (isoDateArr[i].includes(sysDateArr[j])) {
createFormat(sysDateArr, sysDateFormat, i, j);
break;
}
}
}
}

但是想不出如何在没有嵌套循环的情况下实现它?

您可以构建真实的 ISO 日期字符串并进行比较。

const
isEqual = (iso, system) => `20${iso.join('-')}` === `20${system[2]}-${system[0]}-${system[1]}`,
iso = ['20', '06', '27'],
system = ['06', '27', '20'];

console.log(isEqual(iso, system));

您可以通过使用这些数组构建日期时间对象来做到这一点,这些数组和它们用于检查质量 将日期时间转换为日期字符串:

var isoArray = [ '2020', '06', '27' ];
var systemArray = [ '06', '27', '20' ];
var isoArrayDate = new Date(isoArray.join("-"));
console.log(systemArrayDate.toDateString() == isoArrayDate.toDateString());

最新更新