[[7 kyu]Substring fun](http://www.codewars.com/kata/substring-fun/javascript)
⌚️2016.02.22
问题描述:
![[7 kyu]Substring fun](http://ww1.sinaimg.cn/large/006m2mhTgw1f1pp26menxj31b80mgdjm.jpg)
验证方式:
题目理解:
函数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
- 常量值,可以是任意合法的表达式。
- Mozilla手册 > const
- 深入学习const
map()方法:
- 把每个元素通过函数传递到当前匹配集合中,生成包含返回值的新的 jQuery 对象。
.map(callback(index,domElement))
callback(index,domElement)
- 对当前集合中的每个元素调用的函数对象
- jQuery遍历 > map()
reduce()方法:
- 接收一个函数作为累加器(accumulator),数组中的每个值(从左到右)开始缩减,最终为一个值。
arr.reduce(callback,[initialValue])
callback
- 执行数组中每个值的函数,包含四个参数
previousValue
- 上一次调用回调返回的值,或者是提供的初始值(initialValue)
currentValue
- 数组中当前被处理的元素
index
- 当前元素在数组中的索引
array
- 调用 reduce 的数组
initialValue
- 作为第一次调用 callback 的第一个参数。
- Mozilla手册 > reduce()
charAt()方法:
- charAt() 方法返回字符串中指定位置的字符。
str.charAt(index)
index:
- 0 到 字符串长度-1 的一个整数。
- Mozilla手册 > charAt()
join()方法:
- join() 方法将数组中的所有元素连接成一个字符串。
str = arr.join([separator = ','])
separator:
- 可选,用于指定连接每个数组元素的分隔符。分隔符会被转成字符串类型;
- 如果省略的话,默认为一个逗号。
- 如果 seprator 是一个空字符串,那么数组中的所有元素将被直接连接。
- Mozilla手册 > join()
"=>"表达式
- 箭头函数就是个简写形式的函数表达式,箭头函数总是匿名的。
- (param1, param2, …, paramN) => { statements }
(param1, param2, …, paramN) => expression
- // equivalent to: => { return expression; }
// 如果只有一个参数,圆括号是可选的:
- (singleParam) => { statements }
- singleParam => { statements }
// 无参数的函数需要使用圆括号:
- () => { statements }
- Mozilla手册 >箭头函数表达式
引申
心得:
- codewar好像可以用jQ诶。
- 原来因为不懂基本都是因为不知道: 字符串 变量本身被当作数组调用时,会被当作数组处理而不动。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。