javascript - JavaScript 问题:在按钮单击中渲染部分字符串不起作用
问题描述
问题是:
通过反转将数组 ["cakro", "gazar", "faarsi"] 更改为字符串。
1.首先将数组中的每个项目反转为orkac,razag,israaf。
2. 然后从最后一个元素连接,最后一个字符串将是 israafrazagcakro
3. 问题部分是单击按钮一次渲染两个字母。
即首先渲染“is”,然后才渲染“ra”,依此类推。
我的代码:
<p id="demo"></p>
<script>
var fruits = ["cakro", "gazar", "faarsi"];
var first = fruits[0];
var second = fruits[1];
var third = fruits[2];
function reverse(first){
var splitString = first.split("");
var reverseArray = splitString.reverse();
var joinArray = reverseArray.join("");
return joinArray;
}
var firstr = reverse(first);
var secondr = reverse(second);
var thirdr = reverse(third);
var total = thirdr+secondr+firstr;
document.getElementById("demo").innerHTML = total;
var count = 0;
function nextFunc(total){
if (count = 0){ //to print 'is'
document.getElementById("demo").innerHTML = total.substring(0,2);}
else if (count = 1){ //to print 'ra'
document.getElementById("demo").innerHTML = total.substring(2,4);}
else if (count = 2){ //to print 'af'
document.getElementById("demo").innerHTML = total.substring(4,6);}
else {
document.getElementById("demo").innerHTML = total.substring(6,8);}
count++;
return (document.getElementById("demo").innerHTML);
}
</script>
<button type = "button" onclick = nextFunc(total) >Go</button>
问题是我不能在脚本部分中使用按钮部分,并且每次都会重置总的值,并且输出ra
只是。但我希望输出在单击按钮时进行迭代。我想在核心 JS 中做到这一点,所以请帮忙。谢谢
解决方案
使用 Array.map() 和 for 循环实现结果的更简洁方法:
var fruit = ["cakro", "gazar", "faarsi"];
// This maps every word in your array to a new array called reverse where every word has been reversed.
var reversed = fruit.map(word =>word.split("").reverse().join(""));
var word = reversed.join();
function nextFunc(word){
for(let i=0;i<word.length;i++)
{
if(i+1 % 2 === 0) // Every two elements this will be true.
{
document.getElementById("demo").innerHTML = word.substring(i-1,i);
}
}
}
简要说明:我们使用 ES6 的 Array.map() 功能一次性创建和转换原始数组。这些高阶数组函数非常有用。在我们生成反转字符串数组后,我们使用该join
方法创建一个字符串。现在剩下的就是重写你的nextFunc
函数。if else
这一次,我们可以使用运算符来简化事情,而不是使用连续的语句%
。每次循环迭代,我们检查当前索引是否是 2 的倍数,如果是,那么我们将从当前索引 (i) 和它之前的项目 (i-1) 执行子字符串拆分。
Array.map() 文档: https ://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map
推荐阅读
- html - 在 HTML 中制作标签
- python - 迭代字典中的特定键 - Python
- amazon-web-services - 指定位置不存在脚本 || CodeDeploy 问题
- jenkins - 如何配置 Github 操作以触发在我的本地机器上运行的 Jenkins 作业
- javascript - TypeError:昨天.setHours 不是函数
- javascript - javascript生成一组元素
- javascript - react-datepicker 年份范围
- ios - Swift:如何访问函数渲染器节点并通过 UI 操作保存
- sas - 如何在 sas 中创建一个表来查看列变量相对于另一个的计数?
- python - 在 DRF 上 POST 没有正文