好家伙我必须要改变这一点:的JavaScript用绳子打显示三角形
abcdexgh
bbbdxxxh
abcxxxxx
在找这样的:
一* CDE * GH
*** d ***^h
ABC *****
但是现在看起来是这样的:
一个* CDE * GH
*** *** dħ
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);
现在我已经加入到控制台上显示两个阵列,以检查是否一个会改变,其他不会。问题是我同时改变了这两个同时我写只改变结果。或者我可以使它只有一个数组,但仍然不能改变数组的最后一行。任何提示?谢谢。
所以 “三角形”,如果我理解这个权利,是当一行上的单个字符由相同的偏移量上的三个相同的字符匹配 - 下一行中的1,以及可选的5偏移量为-2的下一行等?还有其他情况,比如直角三角形还是自上而下? – Touffy 2015-04-02 11:35:35
哇,我知道我们的开发人员有过度工程的倾向,但是......呃..去读https://developer.mozilla。org/en/docs/Web/JavaScript/Reference/Global_Objects/String /再次替换。而当你在这里,看看这个很酷的https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map。 – 2015-04-02 11:35:50
目前,您的问题对代码的目的没有任何解释(又称您想实现什么目标?)此外,它看起来很像学生练习。 StackOverflow不是解决你作业的地方!请考虑阅读这个答案的更多细节:http://bit.ly/1P20m2A – Daniel 2015-04-02 11:36:34