javascript-如何检测一个数组中的值是否与另一个数组相同?

在以下情况下,我想检测数组1中的值是否与array2相同:

var array1 = ["Bob","Jason","Fred"];
var array2 = ["Bob","Fred"]; // result: true,expected: true
or
var array1 = ["Bob","Fred","Jason"]; // result: false,expected: False
or 
var array1 = ["Bob","Jason"];         // result: true,expected: True
or 
var array1 = ["Jason","Bob"];
var array2 = ["Bob","Jason"];         // result: false,expected: False
or 
var array1 = ["Jason","Bob"];
var array2 = ["Jason","Sue","Bob"];  // result: false,expected: True - just because array 2 contains sue and array 1 doesn't,doesn't mean jason and bob aren't in the right order. They are. We need to ignore the fact sue is interrupting them.
or 
var array1 = ["Jason","Bob","Sue"];  // result: false,expected: False
or 
var array1 = ["Sue","Sue"];
var array2 = ["Jason",expected: True - just because jason is playing third wheel doesn't mean bob and sue aren't in the correct order. they are. we need to ignore jason.
or 
var array1 = ["Bob","Bob"];  // result: true,expected: true
or 
var array1 = ["Bob","Bob"];
var array2 = ["Sue",expected: true - in this scenario,we have two Bobs. while Bob followed by Sue is false,sue followed by bob is true. we need to ignore the first Bob.

到目前为止,我已经明白了这一点:

if (array1.length > array2.length) {
    var arrayLength = array1.length;
} else if (array1.length < array2.length) {
    var arrayLength = array2.length;
} else {
    var arrayLength = array1.length;
}


for (var i = 0; i < arrayLength; i++){
    if (array1[i] !== array2[i]) { 
        return false; 
    } else {
        return true;
    }
}

我的问题是上述方法并非始终都能产生预期的结果.即,如果两个数组的长度相同,那么我得到了预期的结果,但是如果不是,则没有得到预期的结果.

我需要忽略缺失或增加的值,而纯粹查看它们是否具有相同的顺序,尽管这些缺失或增加的值.

最佳答案
myArray是一个坏名字,因为它不是数组.它是两个数组共享的最小长度,因此将其命名为minLength左右.然后,您可以对所有索引进行索引,直到i达到minLength,但minLength [i]没有意义.相反,您想在数组中查找,例如array1 [i]和array2 [i]并比较结果(带有===).

有了这些信息,您应该能够以自己的方式解决它:)

我该怎么做:

const result = array1.every((el,i) => i >= array2.length || el === array2[i]);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


kindeditor4.x代码高亮功能默认使用的是prettify插件,prettify是Google提供的一款源代码语法高亮着色器,它提供一种简单的形式来着色HTML页面上的程序代码,实现方式如下: 首先在编辑器里面插入javascript代码: 确定后会在编辑器插入这样的代码: <pre
这一篇我将介绍如何让kindeditor4.x整合SyntaxHighlighter代码高亮,因为SyntaxHighlighter的应用非常广泛,所以将kindeditor默认的prettify替换为SyntaxHighlighter代码高亮插件 上一篇“让kindeditor显示高亮代码”中已经
js如何实现弹出form提交表单?(图文+视频)
js怎么获取复选框选中的值
js如何实现倒计时跳转页面
如何用js控制图片放大缩小
JS怎么获取当前时间戳
JS如何判断对象是否为数组
JS怎么获取图片当前宽高
JS对象如何转为json格式字符串
JS怎么获取图片原始宽高
怎么在click事件中调用多个js函数
js如何往数组中添加新元素
js如何拆分字符串
JS怎么对数组内元素进行求和
JS如何判断屏幕大小
js怎么解析json数据
js如何实时获取浏览器窗口大小
原生JS实现别踩白块小游戏(五)
原生JS实现别踩白块小游戏(一)