gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 10:57:02 25 4
gpt4 key购买 nike

在这种情况下,我想检测数组 1 中的值是否与数组 2 的顺序相同:

var array1 = ["Bob", "Jason", "Fred"];
var array2 = ["Bob", "Jason", "Fred"]; // result: true, expected: true
or
var array1 = ["Bob", "Jason", "Fred"];
var array2 = ["Bob", "Fred", "Jason"]; // result: false, expected: False
or
var array1 = ["Bob", "Jason", "Fred"];
var array2 = ["Bob", "Jason"]; // result: true, expected: True
or
var array1 = ["Jason", "Fred", "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", "Sue", "Bob"];
var array2 = ["Jason", "Bob", "Sue"]; // result: false, expected: False
or
var array1 = ["Sue", "Bob"];
var array2 = ["Jason", "Bob", "Sue"]; // result: false, expected: False
or
var array1 = ["Bob", "Sue"];
var array2 = ["Jason", "Bob", "Sue"]; // result: false, 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", "Sue", "Bob"];
var array2 = ["Bob", "Bob", "Sue"]; // result: false, expected: False
or
var array1 = ["Bob", "Sue", "Bob"];
var array2 = ["Bob", "Sue", "Bob"]; // result: true, expected: true
or
var array1 = ["Bob", "Sue", "Bob"];
var array2 = ["Sue", "Bob"]; // result: false, 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]);

关于javascript - 如何检测一个数组中的值是否与另一个数组中的值顺序相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55131053/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com