Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

การสลับตัวอักษรในสตริงตามอาร์เรย์ index ใน JavaScript

บทความนี้สาธิตการ shuffle สตริงโดยย้ายตัวอักษรตำแหน่ง i ไปตำแหน่ง arr[i]

ตัวอย่าง

str = 'example', arr = [5, 2, 0, 6, 4, 1, 3]
output: 'alxepem'

ตัวอย่างโค้ด

const str = 'example';
const arr = [5, 2, 0, 6, 4, 1, 3];

const shuffleString = (str = '', arr = []) => {
  let res = '';
  const map = new Map();
  for (let i = 0; i < arr.length; i++) {
    const char = str.charAt(i), index = arr[i];
    map.set(index, char);
  }
  for (let i = 0; i < arr.length; i++) {
    res += map.get(i);
  }
  return res;
};

console.log(shuffleString(str, arr));

ผลลัพธ์

alxepem

คำอธิบาย

ใช้ Map เก็บ mapping index -> character จากอาร์เรย์ arr แล้วสร้างสตริงใหม่โดยอ่าน map ตามลำดับ index 0,1,2...

วิธีทางเลือก: สร้างอาร์เรย์ขนาดเท่าเดิม arr2[arr[i]] = str[i] แล้ว join