Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否在没有嵌套循环的两个数组之间进行检查和匹配?_Javascript_Data Structures - Fatal编程技术网

Javascript 是否在没有嵌套循环的两个数组之间进行检查和匹配?

Javascript 是否在没有嵌套循环的两个数组之间进行检查和匹配?,javascript,data-structures,Javascript,Data Structures,我有两个数组,我想检查和匹配两个数组之间的值,但不使用嵌套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循环。可能吗

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;
            }
        }
    }
}
函数getFormat(isoDateArr、sysDateArr、sysDateFormat){ for(设i=0;i
但是我想不出没有嵌套循环如何实现它?

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

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

日志(isEqual(iso,系统))您可以通过使用这些数组构建datetime对象来完成此操作,并将它们转换为datetime toDateString以检查质量:

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

如果月和日被切换怎么办?@NinaScholz如果你需要
i
j
(虽然不知道
createFormat()
实际上做了什么,但很明显,
i
j
都作为参数传递给它),你需要某种循环。事实上,
includes()
也是一个循环。
getFormat()
首先应该做什么?它获取两个数组和未知的第三个参数。然后,如果在第二个数组中找到了第一个数组中的每个元素,它将在调用带有匹配项索引的
createFormat()
之后,测试第一个数组中的每个元素,并在第一个匹配项处断开
s。然后返回未定义的
/nothing…->@tevemadar用更多代码更新了问题