Vấn đề
Chúng ta cần viết một hàm JavaScript nhận vào một mảng chuỗi. Tất cả các chuỗi trong mảng chứa các ký tự giống nhau, hoặc lặp lại các ký tự, và chỉ một chuỗi chứa một tập ký tự khác. Hàm phải tìm và trả về chuỗi đó.
Ví dụ
Nếu mảng là:
['ba', 'abc', 'acb', 'bac', 'foo', 'bca', 'cab', 'cba' ]
Thì chuỗi cần tìm là 'foo'.
Chuỗi có thể chứa dấu cách. Dấu cách không quan trọng, chỉ các ký tự không phải dấu cách mới quan trọng. Ví dụ, chuỗi chỉ chứa dấu cách giống như chuỗi rỗng. Đảm bảo mảng chứa hơn 3 chuỗi.
Ví dụ
Dưới đây là mã:
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));
Kết quả
foo