JavaScript使用字符串Reveal Triangles
JavaScript playing with string Reveal Triangles
大家好,我必须更改这个:
abcdexgh
bbbdxxxh
abcxxxxx
看起来像这样:
a*cde*gh
***d***h
abc*****
但现在看起来是这样的:
a*cde*gh
***d***h
abcxxxxx
function revealTriangles(arr){
var result = arr;
for ( var i=0;i<arr.length;i++){
for ( var j=1; j<=arr[i].length-1;j++){
if(arr[i+1]!==undefined){
if (arr[i][j]==arr[i+1][j]&&arr[i][j]==arr[i+1][j+1]&&arr[i][j]==arr[i+1][j-1]){
result[i]=arr[i].replace(arr[i][j],'*');
result[i+1]=arr[i+1].replace(arr[i+1][j+1],'*').replace(arr[i+1][j-1],'*').replace(arr[i+1][j],'*');
}
}
}
}
for (i=0;i<result.length;i++) {
console.log(result[i]);
}
for (i=0;i<arr.length;i++) {
console.log(arr[i]);
}
}
var arr= ['abcdexgh','bbbdxxxh','abcxxxxx'];
revealTriangles(arr);
现在,我添加了两个数组以在控制台上打印,以便检查其中一个是否会更改,另一个是否不会更改。问题是我在写的时候同时改变了这两个结果。或者我可以只使用一个数组,但仍然无法更改数组的最后一行。有什么提示吗?谢谢
问题是这行代码:
if(arr[i+1]!==undefined){
它只是跳过最后一个元素,因为在这种情况下arr[i+1]是未定义的。
第一次迭代后,数组将为:
a*cde*gh
***d***h
在第二次迭代中,您试图将*与x进行匹配,但这不是真的。因此,结果是:
a*c d e*g h
***d***h
abcxxxxx
相关文章:
- 如何使用jQuery&Zurb Foundation 5 Reveal Modal
- JavaScript使用字符串Reveal Triangles
- reveal.js幻灯片的多重功能
- Reveal Modal中带有Foundation-Controller的AngularJS不起作用
- 使用点击和窗口散列在Reveal Modal中重新初始化Zurb均衡器
- reveal.js框架+javascript箭头
- 如何使用reveal.js、javascript和fragment类移动图像
- 如何将传单地图嵌入Reveal.js演示中
- 在 Reveal.js 中停止片段上的音频
- 在 Reveal.js 中更改背景图像样式
- Zurb Foundation Reveal (Modal) 关闭后未触发的事件
- Zurb插件“twentytwenty”可以在Foundation 4 Reveal Modal中运行吗
- Zurb Foundation 4 Reveal Modal: Won't close
- 如何在Reveal.js启动之前等待页面加载
- reveal.js转换为单页html
- Foundation Reveal Modal超出可见区域
- Foundation Reveal Modal弹出窗口正在关闭
- mootools fx.reveal
- 我如何使第一个片段(高亮显示)在reveal.js中自动可见
- 使用slidennumber Reveal.js检索当前幻灯片的数量