使用 JavaScript 查找数组中唯一的唯一字符串
问题
我们需要编写一个接受字符串数组的JavaScript函数。数组中的所有字符串都包含相同的字符,或字符的重复,并且只有一个字符串包含一组不同的字符。我们的函数应该找到并返回那个字符串。
例如
如果数组是-
[‘ba’, 'abc', 'acb', 'bac', 'foo', 'bca', 'cab', 'cba' ]
那么所需的字符串是'foo'。
字符串可能包含空格。空格不重要,只有非空格符号重要。例如,一个只包含空格的字符串就像一个空字符串。保证数组包含3个以上的字符串。
示例
以下是代码-
const arr = ['ba', 'abc', 'acb', 'bac', 'foo', 'bca', 'cab', 'cba' ]; const findOnlyUnique = (arr = []) => { const first = []; for(i = 0; i < arr.length; i++){ first.push(arr[i].toLowerCase().replace(/\s/g, '').split('')); for (j = 0; j < arr[i].length; j++){ first[i].sort(); } } const second = []; for (k = 0; k < arr.length; k++){ second.push(first[k].join()); } second.sort(); const third = []; if (second[1] !== second[second.length - 1]) { third.push(second[second.length - 1]); }else{ third.push(second[0]); } const last = []; for(let n = 0; n < first.length; n++){ last.push(first[n].join(',')); } return (arr[last.indexOf(third[0])]); }; console.log(findOnlyUnique(arr));输出结果
foo