Saya punya kode

let letters = [
 {"ae": "a"},
 {"ac": "c"}
];

String.prototype.swapLetters = function(){ 
    return this.replace(/ae/g, 'a').replace(/ac/g, 'c');
}

var decLetter= new String(response[i].name).swapLetters();

Bagaimana saya bisa menggunakan fungsi prototipe saya dengan nilai objek JSON? JSON akan dihasilkan secara dinamis.

0
MMPL1 29 Oktober 2019, 17:59

1 menjawab

Jawaban Terbaik

Ulangi array dan terapkan fungsi ke masing-masing:

String.prototype.swapLetters = function() {
    let result = this;
    letters.forEach(pair => {
      const key = Object.keys(pair)[0];
      const value = pair[key];
      result = result.replace(key, value);
    });
    return result;
}

Tentu saja, jika Anda memfaktorkan ulang data Anda, Anda dapat membuatnya lebih sederhana:

let letters = {
    "ae": "a",
    "ac": "c"
};

String.prototype.swapLetters = function() {
    return Object.keys(letters).reduce((result, replacer) => {
        return result.replace(replacer, letters[replacer]);
    }, this);
}
1
IceMetalPunk 29 Oktober 2019, 15:08