繁体   English   中英

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

[英]Order Difference in javascript array of strings

有没有一种简单的方法来获得两个字符串数组的阶差?

var A = ['a', 'b'];
var B = ['b', 'a'];

通过比较这两个,有没有一种简单的方法可以发现它们交换了索引? 我在网上找不到任何有用的东西,而且我真的不想走长而艰难的路,因为我使用的阵列很大。 使用dragtable对我的数据表中的列进行重新排序,并且我一直在向其中推送数据,因此,每当订单更改时,我都希望将特定数据放入其指定的列中,这就是我需要它的原因,谢谢!

您可以遍历一个数组,然后将当前值的索引与另一个给定数组中相同值的索引进行比较。 如果两者都不匹配,则可以创建映射,其中包含每个值的不匹配矩阵,可用于进一步计算。 参见https://jsfiddle.net/f2jL46ke/

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)

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

您将只使用sort()方法

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

和B.sort()retutn ['a','b'];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM