javascript字符串数组中的顺序差异

javascript字符串数组中的顺序差异,javascript,arrays,Javascript,Arrays,有没有一种简单的方法可以得到两个字符串数组的顺序差 var A = ['a', 'b']; var B = ['b', 'a']; 通过比较这两者,有没有一种简单的方法可以发现它们交换了索引?我在网上和网上找不到任何有用的东西 我真的不想走漫长而艰难的道路,因为我使用的阵列是相当大的。使用dragtable对我的datatable的列进行重新排序,我不断地将数据推送到其中,因此每当订单发生变化时,我都希望特定数据进入指定的列,这就是我需要它的原因,谢谢 您只需使用排序方法即可 var A =

有没有一种简单的方法可以得到两个字符串数组的顺序差

var A = ['a', 'b'];
var B = ['b', 'a'];
通过比较这两者,有没有一种简单的方法可以发现它们交换了索引?我在网上和网上找不到任何有用的东西
我真的不想走漫长而艰难的道路,因为我使用的阵列是相当大的。使用dragtable对我的datatable的列进行重新排序,我不断地将数据推送到其中,因此每当订单发生变化时,我都希望特定数据进入指定的列,这就是我需要它的原因,谢谢

您只需使用排序方法即可

var A = ['a', 'b'];
var B = ['b', 'a'];
B=B.sort();

和B.sort retutn['a','B']

您可以迭代一个数组,并将当前值的索引与另一个给定数组中相同值的索引进行比较。如果两者都不匹配,则可以创建映射,其中包含每个值的不匹配矩阵,可用于进一步计算。看


通过这种方法,您可以知道A哪些字符串在数组中不在同一位置,B哪些字符串在两个数组中都位于同一位置。

您希望的结果是什么?是否希望结果对象包含所有字符串作为键并保存两个索引?e、 g.{a:[1,2],b:[2,1]}等等,你能给我们一些导出的输出吗?如果数组有更多的元素怎么办?另外,你会如何处理重复值?数组元素是唯一的吗?假设数组4个元素,现在使用绘图表,我将第一个元素从索引0移动到索引2,每个其他元素下一个索引,所以我想知道哪个元素被移动到了哪个索引,所以我想@noa dev的形式是最好的,将新旧索引和字符串作为键将非常好。排序修改数据的位置,所以您不需要将其分配回B.2。OP似乎想要两者之间的区别,而不是使它们相同。这难道不是一个问题,因为从技术上讲,每个字符串都会随着索引的变化而改变位置吗?或者我没有理解正确可能我理解不正确,但是当你填充一个数组时,原始索引永远不会移位。为了移动索引,您必须主动地执行以下操作:拆分一个数组,推入一个值,然后将尾部合并回数组。随着数组的增长,值的原始索引保持不变same@PatoSrna这会是个问题吗?我不知道。这取决于你打算如何使用它。所以可能不是。这将为您提供一个映射,其中不匹配的值及其在不同数组中的各自位置。当然,从开始到结束旋转一个字符串,就像在这里的例子中,意味着现在所有的东西都不匹配了,但是你还能期待什么呢?是的,你是对的,它点击了,我确信这就是我想要的,我只需要弄清楚如何处理数据,我应该很好,谢谢!
const arr1 = ['a', 'b', 'c']
const arr2 = ['b', 'c', 'a']

// I am assuming, that both arrays have an equal length
const differences = arr1.reduce((store, value) => {
    const arr1Index = arr1.indexOf(value)
    const arr2Index = arr2.indexOf(value)
    if(arr1Index !== arr2Index) {
        store[value] = [arr1Index, arr2Index]
    }
    return store
}, {})

console.log(differences)