Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Xóa ký tự từ chuỗi A nếu xuất hiện trong chuỗi B với JavaScript

Dùng split('') chia chuỗi cần xóa thành mảng ký tự, reduce() lần lượt replace() từng ký tự khỏi chuỗi gốc.

Ví dụ


const removeChars = (charsToRemove, originalStr) => 
    charsToRemove.split('').reduce((str, char) => str.replace(char, ''), originalStr);

var original = "JOHNDOE";
var toRemove = "JOHN";

console.log(removeChars(toRemove, original)); // "DOE"

Cách chạy

node demo.js

Kết quả

DOE

Lưu ý: replace() chỉ thay lần đầu. Nếu chuỗi B có ký tự trùng lặp, dùng regex global: str.replace(new RegExp(char, 'g'), '').

Cách hiệu quả hơn:


const removeChars = (remove, str) => {
    const set = new Set(remove);
    return [...str].filter(c => !set.has(c)).join('');
};