Как я могу сделать одну и ту же замену на нескольких переменных в Javascript - PullRequest
0 голосов
/ 10 декабря 2018

Я хочу сделать одну и ту же замену для нескольких переменных.Вот пример, который работает, но я должен написать оператор замены для каждой переменной.Я мог бы сделать функцию замены и вызвать функцию для каждой переменной, но мне было интересно, есть ли более эффективный способ сделать это в одной строке, что-то вроде string1,string2,string3(replace...

<script>
string1="I like dogs, dogs are fun";
string2="The red dog and the brown dog died";
string3="The dog likes to swim in the ocean";
string1=string1.replace(/dog/g,'cat');
string2=string2.replace(/dog/g,'cat');
string3=string3.replace(/dog/g,'cat');

alert(string1+"\n"+string2+"\n"+string3);
</script>

1 Ответ

0 голосов
/ 10 декабря 2018

Вместо этого используйте массив и .map для нового массива, выполняя операцию replace для каждого:

const dogToCat = str => str.replace(/dog/g,'cat');
const strings = [
  "I like dogs, dogs are fun",
  "The red dog and the brown dog died",
  "The dog likes to swim in the ocean"
];
console.log(
  strings
    .map(dogToCat)
    .join('\n')
);

Если у вас есть для использования автономных переменных и переназначения их, то вы можете деструктурировать результат, хотя он и уродлив и, вероятно, не очень хорошидея (const с предпочтительнее, когда это возможно):

const dogToCat = str => str.replace(/dog/g, 'cat');
let string1 = "I like dogs, dogs are fun";
let string2 = "The red dog and the brown dog died";
let string3 = "The dog likes to swim in the ocean";

([string1, string2, string3] = [string1, string2, string3].map(dogToCat));
console.log(string1 + "\n" + string2 + "\n" + string3);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...