[7 kyu]Substring fun
⌚️2016.02.22
问题描述:
验证方式:
题目理解:
函数nthChat处理一个参数,一个 字符串组。
你需要从第n个单词中取出对应的第n个字母来组合成一个新单词,并将其转化成字符串返回来。
注意:只测试合理的的输入——即字符串组和空组,每个单词也一定有其所在的数组的序号长度的字母。
我的解法
function nthChar(words){
var newWord = '', //1⃣️
A_length=words.length;
if(A_length !== 0){
for(var i =0,n = A_length-1;i <= n;++i){
var eachWord = [];
eachWord = words[i].split(""); //2⃣️
newWord = newWord + eachWord[i];
}
}
return newWord
}
注解:
通过赋值 '' 避免
undifined
自动转换成'undeifned'
, 干扰结果。使用函数
split( , )
能将 字符串 ,[按一定的规律]分割成[可设置数组长度的]数组。 w3s > split()
优解
知识点:
-
const:
const 声明创建一个只读的常量。这不意味着常量指向的值不可变,而是变量标识符的值只能赋值一次。(译者注:JavaScript中的常量和Java,C++中的常量一个意思。注意区分常量的值和常量指向的值的不同)
-
const name1 = value1 [, name2 = value2 [, ... [, nameN = valueN]]];
-
nameN
常量名称,可以是任意合法的identifier(标识符)。
-
valueN
常量值,可以是任意合法的表达式。
-
-
map()方法:
把每个元素通过函数传递到当前匹配集合中,生成包含返回值的新的 jQuery 对象。
-
.map(callback(index,domElement))
-
callback(index,domElement)
对当前集合中的每个元素调用的函数对象
-
-
reduce()方法:
接收一个函数作为累加器(accumulator),数组中的每个值(从左到右)开始缩减,最终为一个值。
arr.reduce(callback,[initialValue])
-
callback
-
执行数组中每个值的函数,包含四个参数
previousValue
-
上一次调用回调返回的值,或者是提供的初始值(initialValue)
-
currentValue
数组中当前被处理的元素
-
index
当前元素在数组中的索引
-
array
调用 reduce 的数组
-
initialValue
作为第一次调用 callback 的第一个参数。
charAt()方法:
charAt() 方法返回字符串中指定位置的字符。
-
str.charAt(index)
-
index:
0 到 字符串长度-1 的一个整数。
-
join()方法:
join() 方法将数组中的所有元素连接成一个字符串。
-
str = arr.join([separator = ','])
-
separator:
可选,用于指定连接每个数组元素的分隔符。分隔符会被转成字符串类型;
如果省略的话,默认为一个逗号。
如果 seprator 是一个空字符串,那么数组中的所有元素将被直接连接。
-
"=>"表达式
箭头函数就是个简写形式的函数表达式,箭头函数总是匿名的。
(param1, param2, …, paramN) => { statements }
-
(param1, param2, …, paramN) => expression
// equivalent to: => { return expression; }
-
// 如果只有一个参数,圆括号是可选的:
(singleParam) => { statements }
singleParam => { statements }
-
// 无参数的函数需要使用圆括号:
() => { statements }
引申
心得:
codewar好像可以用jQ诶。
原来因为不懂基本都是因为不知道: 字符串 变量本身被当作数组调用时,会被当作数组处理而不动。