freecode学习笔记

Check for Palindromes

1.切割字符串方法:split()
将字符串切割成数组,但是需要注意的是,split()方法不改变原始字符串,即:

1
2
3
var str = "abcd";
var new = str.split();
console.log(new);

输出的abcd,new变量依然为字符串。正确的做法是:

1
2
3
var str = "abcd";
var new = str.split("");
console.log(new);

输出[a,b,c,d];
2.if判断条件里面使用字母时,应使用引号。

1
2
3
4
5
6
7
8
9
var item = "b";
//这是错误的
if(item>a){
....
}
//正确
if(item>"a"){
....
}

3.substr(start,len)
第一个参数表示起始位置,第二个参数表示子字符串的长度。
该函数用于从字符串中截取一段字符串。如果start = -1,表示最后一位数,如果start = -2,表示倒数第二位数。
4.splice & slice
splice是直接对数组进行操作。例如:

1
2
3
4
var arr = [1,2,3,4];
arr.splice(0,2);s
console.log(arr);
//输出 [3,4];

splice还能向数组中插入新的数据;s
slice则会返回一个新的数组
5.indexOf
返回字符串第一次出现的位置
6.filter 过滤数组
7.reduce

1
2
3
4
5
6
7
8
9
10
var arr = ["A","B","C","D"];
//这里的currentValue 的初始值为B,accumulator的初始值为A;
arr.reduce(function(accumulator,currentValue){
});
//
//accumulator初始值为0,currentValue初始值为A
arr.reduce(function(accumulator,currentValue){
},0);

另外,在reduce中使用return的时候,最好是不要在for里面return,应先使用break,然后再return。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
function test(args) {
var arr = [1,2,3,4,5]
let result = args.reduce(function(all,one){
for(let i=0;i<arr.length;i++){
if(one == arr[i]){
return all.concat(one);
}
}
},[]);
console.log(result);
}
test([4,5]);
function sym1(args) {
var first = Array.from(arguments[0]);
var second = Array.from(arguments[1]);
var result = first.reduce(function(accumulator,current){
for(let i=0;i<second.length;i++){
if(current == second[i]){
accumulator.push(current);
}
}
return accumulator;
},[]);
console.log(result);
}
sym1([1,4,5],[1,2,4]);

您的支持将鼓励我继续创作!