输入输出
1,输入
- 获取输入的参数,可以用readline()函数,多个输入参数可以通过多次readline()函数进行读取,比如输入:
12
abc
以上两个参数可以通过以下代码读取:
let param1 = readline() // 读取 12 let param2 = readline() // 读取 abc
- 当获取多个可变入参数的时候,比如要输入一个输入的时候,一般第一个入参是告诉你要输入数组元素的个数,比如输入:
3
aa
bb
cc
可以通过以下代码读取:
while(count = readline()) { for (var i=0; i<count; i++) { // 这样就可以分别读取 aa bb cc,如有需要可以通过这个循环把它们放到数组中 var word = readline() } }
获取的多行参数,但是并没有说明有多少行,可以判断读取的是否为
undefined
,如果读取的为undefined
,说明已经读取了所有入参while (1) { var arr = readline() if (arr == undefined) break // 通过break跳出循环 var nums = arr.split(' ') var sum = 0 for (var i=1; i<nums.length; i++) { sum += parseInt(nums[i]) } console.log(sum) }
2,输出
输出有两种方法:print()
和console.log()
,两种均可
3,结束读取入参
结束读取入参只需要使用break
跳出循环即可
while (1) { var nums = readline() if (nums == '0 0') break // 通过break跳出读取参数的循环 var numarr = nums.split(' ') var a = parseInt(numarr[0]) var b = parseInt(numarr[1]) console.log(a + b) }
字符串处理相关
- 常用的
split
函数一定要记得,如果分割符为空字符串或被分割的字符串中没有指定的分割符,则返回这个字符串本身,比如:'a b'.split('') // 'a b' 'a b'.split(',') // 'a b'
- 碰到无视大小写的题目,要会用转大小写的函数
toLowerCase
和toUpperCase
'aJs4'.toLowerCase() // 'ajs4' 'aJs4'.toUpperCase() // 'AJS4'
- 关于字符串遍历,乖乖用
for
吧,不要对字符串使用forEach
,否则会报错 - 常用的字符串截取函数要信手拈来,三个:
slice(start, end)
,substring(start, end)
,substr(start,length)
,其中slice
跟substring
效果一样,包含start,但是不包含end,slice
还可以用于数组,见如下示例代码:[1,2,3,4].slice(1, 3) // [2,3] 'abcd'.slice(0, 3) // 'abc' 'abcd'.substring(0, 3) // 'abc' 'abcdefgh'.substr(2, 3) // 'cde'
- 字符串中查找某个字符或者字符串,可以用
indexOf
函数,该函数同样可以作用于数组,如果没有找到,则返回-1'abcd'.indexOf('k') // -1 'abcd'.indexOf('bc') // 1 [1,2,3,4].indexOf(3) // 2
算法相关
- 冒泡排序
function range(colArr) { for (let m=0; m<colArr.length; m++) { for (let n=0; n<colArr.length-1-m; n++) { if (colArr[n+1] < colArr[n]) { let temp = colArr[n] colArr[n] = colArr[n+1] colArr[n+1] = temp } } } }