У меня есть код
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();
Как я могу использовать свою функцию-прототип со значениями объекта JSON? JSON будет генерироваться динамически.
0
MMPL1
29 Окт 2019 в 17:59
1 ответ
Лучший ответ
Пройдите по массиву и примените функцию к каждому из них:
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;
}
Конечно, если вы реорганизуете свои данные, вы можете сделать это намного проще:
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 Окт 2019 в 18:08
Спасибо! Это то, что я ищу!
– MMPL1
29 Окт 2019 в 18:14
Похожие вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript/JS) и его различных диалектах/реализациях (кроме ActionScript). Обратите внимание, что JavaScript — это НЕ Java. Включите все теги, относящиеся к вашему вопросу: например, [node.js], [jQuery], [JSON], [ReactJS], [angular], [ember.js], [vue.js], [typescript], [стройный] и т. д.
JSON.stringify
, вызвать свою функцию, а затем использоватьJSON.parse
, чтобы превратить ее обратно в объект. Это полностью зависит от того, что вы хотите сделать, ваш вопрос очень расплывчатыйletters
— это массив объектов. JSON — это текстовый формат.