Vấn đề
Chúng ta cần viết một hàm JavaScript nhận vào một mảng số. Hàm sẽ trả về một chuỗi gồm bốn phần:
- Một 'từ' 4 ký tự, tạo từ các ký tự dẫn xuất từ hai số đầu và hai số cuối trong mảng. Thứ tự đọc từ trái sang phải (thứ nhất, thứ hai, thứ hai từ cuối, cuối cùng),
- Giống như trên, sau khi sắp xếp mảng theo thứ tự tăng dần,
- Giống như trên, sau khi sắp xếp mảng theo thứ tự giảm dần,
- Giống như trên, sau khi chuyển mảng thành ký tự ASCII và sắp xếp theo thứ tự bảng chữ cái.
Bốn phần sẽ tạo thành một chuỗi duy nhất, mỗi phần cách nhau bởi dấu gạch ngang (-).
Ví dụ
Dưới đây là mã nguồn:
const arr = [99, 98, 97, 96, 81, 82, 82];
const transform = (arr = []) => {
let res = [];
res.push(arr[0], arr[1], arr[arr.length-2], arr[arr.length-1]);
res = res.map(x=>String.fromCharCode(x)).join('');
const arr1 = arr
.map(el=> String.fromCharCode(el))
.sort();
const arr2 = (arr1.slice(0, 2) + ',' + arr1.slice(-2))
.split(',')
.join('');
const arr3 = arr2
.split('')
.reverse()
.join('');
return `${res}-${arr2}-${arr3}-${arr2}`;
};
console.log(transform(arr));Kết quả
cbRR-QRbc-cbRQ-QRbc