嗨,我找到了解决代码问题的解决方案,我不确定语法的作用是什么.该函数接受一串字符,并根据长度以特定方式返回.
input ="abcd"; output ="A-Bb-Ccc-Dddd"input ="gFkLM"; 输出="G-Ff-Kkk-Llll-Mmmmm"
这家伙发布了这个解决方案
function accum(str) { var letters = str.split(''); var result = []; for (var i = 0; i < letters.length; i++) { result.push(letters[i].toUpperCase() + Array(i + 1).join(letters[i].toLowerCase())); } return result.join('-'); }
有点困惑整体解决方案,但有一点特别唠叨我.看到了Array(i + 1)
吗?那是做什么的?对不起,google不是一件容易的事.
我相信这会分配一个长度数组i + 1
.但更重要的是,代码在做什么?你必须知道join()
函数的作用......它连接由函数参数分隔的数组中的元素.例如:
['one', 'two', 'three'].join(' ') === 'one two three'
在这种情况下,数组中填充了undefined
元素,因此您得到如下内容:
[undefined].join('a') === '' [undefined, undefined].join('b') === 'b' [undefined, undefined, undefined].join('c') === 'cc' [undefined, undefined, undefined, undefined].join('d') === 'ddd'