JavaScript 句子镜像
首先,让我们通过下面的例子来理解句子镜像的意义:
假设,句子为“GeeksforGeeks is an Excellent Platform”,那么镜像后的句子将是“skeeGrofskeeG si a tnellecxE mroftalP”。
实现代码的方法有三个:
- JavaScript split() 方法: 这个方法将字符串转换成数组类型。
- JavaScript reverse() 方法: 这个方法用于将数组中的元素反转。它只适用于数组类型的数据结构,并且输出结果将是一个数组。
- JavaScript join() 方法: 这个方法用于将数组的元素连接起来,并将数组类型转换成字符串类型。
接下来,我们通过逐步实现来理解。
步骤1: 首先,我们将使用split方法将给定的字符串分割成单个字符,以便我们可以镜像句子中的单词。下面是代码。
Javascript
<script>
const sen = "GeeksforGeeks is a Excellent Platform";
// This will split the sentence into alphabet and will
// give you array Data Structure
const res = sen.split('');
console.log(res);
</script>
输出:
步骤2: 拆分后,我们将反转数组的元素,以便可以按照逆序拼接数组,从而获得每个单词作为镜像单词的结果。
Javascript
<script>
const arr = [
'G', 'e', 'e', 'k', 's', 'f', 'o',
'r', 'G', 'e', 'e', 'k', 's', ' ',
'i', 's', ' ', 'a', ' ', 'E', 'x',
'c', 'e', 'l', 'l', 'e', 'n', 't',
' ', 'P', 'l', 'a', 't', 'f', 'o',
'r', 'm'
]
const reverseArray = arr.reverse();
console.log(arr);
</script>
输出:
步骤3: 现在我们将使用join方法来连接前一步获得的字符数组,以在这一步中得到镜像单词作为输出。
JavaScript
<script>
const revArray = [
'm', 'r', 'o', 'f', 't', 'a', 'l',
'P', ' ', 't', 'n', 'e', 'l', 'l',
'e', 'c', 'x', 'E', ' ', 'a', ' ',
's', 'i', ' ', 's', 'k', 'e', 'e',
'G', 'r', 'o', 'f', 's', 'k', 'e',
'e', 'G'
]
// joinArr will be of string data type
const joinArr = revArray.join('');
console.log(joinArr);
</script>
输出:
步骤4: 在之前的步骤中,我们将单词进行了镜像翻转,但句子也被反转了。所以现在,我们需要再次反转句子来重新排序。我们将再次使用split方法将句子分割成单词。这里产生的问题是为什么我们不使用reverse方法来反转单词的顺序。因为reverse方法只适用于数组,而不适用于字符串。
JavaScript
<script>
const mirrorWord = "mroftalP tnellecxE a si skeeGrofskeeG";
const splitAsWords = mirrorWord.split(" ");
console.log(splitAsWords);
</script>
输出:
步骤 5: 从先前的输出中,我们得到了一个单词数组的输出。现在,我们将使用reverse方法来反转单词的顺序,以获得镜像句子。
Javascript
<script>
const wordsArr = [ 'mroftalP', 'tnellecxE',
'a', 'si', 'skeeGrofskeeG' ];
const revOrder = wordsArr.reverse();
console.log(revOrder);
</script>
输出:
步骤6: 在前一步中,我们将我们的镜像句子以数组类型获取到了。现在,我们只需使用 join 方法将单词连接起来,以获取输出为字符串类型。
Javascript
<script>
const mirroredArr = [ 'skeeGrofskeeG', 'si', 'a',
'tnellecxE', 'mroftalP' ];
const finalans = mirroredArr.join(" ");
console.log(finalans);
</script>
输出:
让我们将下面的代码整合成一行,以实现对下面句子的镜像处理:
Javascript
<script>
const sen = "GeeksforGeeks is a Excellent Platform";
const mirrSen = sen.split('').reverse().join('').split("
").reverse().join(" ");
console.log(mirrSen);
</script>
输出: