js 多个字符串对比不同

如果想要在 JavaScript 中对比多个字符串的不同之处,可以通过比较它们的字符来进行。可以使用 `split` 方法和 `forEach` 方法来遍历每个字符串的字符,比较每个字符的值是否相等。如果出现不同,则记录下不同字符所在的位置,最后输出所有字符串不同之处的位置和值。

以下是一个简单的示例代码:

```javascript

function diffStrings(...strings) {

const diffs = [];

// 获取字符串中最短的长度

const shortest = strings.reduce((a, b) => a.length < b.length ? a : b).length;

for (let i = 0; i < shortest; i++) {

const chars = [];

// 获取当前位置的字符

strings.forEach(str => chars.push(str[i]));

// 比较字符值是否相等,如果不等则记录下不同之处的位置和值

if (new Set(chars).size > 1) {

diffs.push({ index: i, values: chars });

}

}

return diffs;

}

// 示例用法

const diffs = diffStrings('abc', 'adc', 'aed');

console.log(diffs); // [{ index: 1, values: ['b', 'd', 'e'] }]

```

以上代码中的 `diffStrings` 函数接收任意数量的字符串参数,并遍历每个字符串的字符进行比较。`diffs` 数组用于记录所有字符串不同之处的位置和值。在比较过程中,使用 `Set` 数据结构快速排除相同字符,从而更高效地找到不同之处。最后返回 `diffs` 数组,包含所有字符串不同之处的位置和值。