数组相关方法汇总
方法名 | 简单说明 |
---|---|
push() | 向数组的末尾添加一个或多个元素,并返回新的长度,也就是添加元素后的数组长度。 |
shift() | 删除原数组第一项。并返回删除元素的值;如果数组为空则返回undefined |
unshift() | 向数组的开头添加一个或更多元素,并返回新的长度。 |
pop() | 用于删除并返回数组的最后一个元素。并返回删除的那个元素 |
splice() | 用于插入、删除或替换数组的元素。 |
concat() | 方法用于连接两个或多个数组。 |
join() | 就是把数组转换成字符串,然后给他规定个连接字符,默认的是逗号(, ) |
toString() | 把数组转换为字符串,并返回结果。 |
reverse() | 用于颠倒数组中元素的顺序。 |
slice() | 方法可从已有的数组中返回选定的元素。 |
sort() | 方法用于对数组的元素进行排序(从小到大)。 |
indexOf() | 返回获取项在数组中的索引 |
lastIndexOf() | 返回获取项在数组中出现的最后-次索引 |
forEach() | 循环遍历数组 参数是一个匿名函数默认返回为undefined |
map() | 循环遍历数组 参数是一个匿名 函数 |
reduce()和reduceRight() | 这两个方法都会实现迭代数组的所有项,然后构建一个最终返回的值。reduce()方法从数组的第一项开始,逐个遍历到最后.而reduceRight()则从数组的最后一项开始,向前遍历到第一项 |
some() | 判断数组中是否存在满足条件的项,只要有一项满足条件,就会返回true |
every() | 判断数组中每一项都是否满足条件,只有所有项都满足条件,才会返回true |
字符串相关方法汇总
方法名 | 简单说明 |
---|---|
charAt() | 返回在指定位置的字符。 |
charCodeAt() | 返回在指定的位置的字符的Unicode编码。 |
concat() | 连接字符串。 |
indexOf() | 检索字符串。 |
match() | 找到一个或多个正则表达式的匹配。 |
replace() | 替换与正则表达式匹配的子串。 |
search() | 检索与正则表达式相匹配的值。 |
slice() | 提取字符串的片断,并在新的字符串中返回被提取的部分。 |
split() | 把字符串分割为字符串数组。 |
toLocaleLowerCase() | 把字符串转换为小写。 |
toLocaleUpperCase() | 把字符串转换为大写。 |
toLowerCase() | 把字符串转换为小写。 |
toUpperCase() | 把字符串转换为大写。 |
substr() | 从起始索引号提取字符串中指定数目的字符。 |
substring() | 提取字符串中两个指定的索引号之间的字符 |
相关题型解析
1、查找数组元素位置
题目描述
找出元素item在给定数组arr中的位置
输出描述
如果数组中存在item,则返回元素在书中中的位置,否则返回-1
示例1
输入
[1,4,2,3,5] , 5
输出
4
function indexOf(arr, item) {
if (Array.prototype.indexOf) {
return arr.indexOf(item);
} else if (arr.indexOf(item) > 0) {
return arr.indexOf(item);
} else {
return -1;
}
}
console.log(indexOf([1, 4, 2, 3, 5], 5)); //4
语法:
arr.indexOf(searchElement) //查找searchElement元素在数组中的第一个位置
arr.indexOf(searchElement[ , fromIndex = 0] //从fromIndex开始查找searchElement元素在数组中的第一个位置
2、添加元素(末尾添加)
题目描述
在数组arr末尾添加元素item,不要直接修改数组arr,结果返回新的数组
示例1
输入
[1,2,3,4] , 10
输出[1,2,3,4,10]
方法一:普通的for循环拷贝+push
function append(arr, item) {
var newArr = [];
for (var i = 0; i < arr.length; i++) {
newArr.push(arr[i]);
}
newArr.push(item);
return newArr;
}
console.log(append([1, 2, 3, 4], 10)); //[1,2,3,4,10]
方法二:使用concat将传入的数组或非数组值与原数组合并,组成一个新的数组并返回
function append(arr, item) {
return arr.concat(item);
}
console.log(append([1, 2, 3, 4], 10)); //[1,2,3,4,10]
方法三:使用slice浅拷贝+push
function append(arr, item) {
var newArr = arr.slice(0);
newArr.push(item);
return newArr;
}
console.log(append([1, 2, 3, 4], 10)); //[1,2,3,4,10]
3、移除数组中的元素(返沪新的数组)
题目描述
在数组arr末尾添加元素item,不要直接修改数组arr,结果返回新的数组
示例1
输入
[1,2,3,4,2] , 2
输出[1,3,4]
方法一:filter过滤
function remove(arr, item) {
return arr.filter((res) => {
return res != item;
});
}
console.log(remove([1, 4, 2, 4, 5], 4)); //[1,2,5]
方法二:for循环+push(效率高于for循环)
function remove(arr, item) {
var newArr = [];
arr.forEach((e) => {
//箭头函数
if (e != item) {
newArr.push(e);
}
});
return newArr;
}
console.log(remove([1, 4, 2, 4, 5], 4)); //[1,2,5]
for循环+splice
function remove(arr, item) {
var newArr = arr.slice(0);
for (var i = 0; i < arr.length; i++) {
if (newArr[i] == item) {
newArr.splice(i, 1);
i--;
}
}
return newArr;
}
console.log(remove([1, 4, 2, 4, 5], 4)); //[1,2,5]
5、数组求和
题目描述
计算给定数组arr中所有元素的总和
输出描述
数组中的元素均为Number类型
示例1
输入
[1,2,3,4]
输出
10
方法一:普通for循环
function sum(arr) {
var res = 0;
for (var i = 0; i < arr.length; i++) {
res += arr[i];
}
return res;
}
console.log(sum([1, 2, 3, 4])); //10
方法二:forEach循环
function sum(arr) {
var res = 0;
arr.forEach((item) => {
res += item;
});
return res;
}
console.log(sum([1, 2, 3, 4])); //10
方法三:reduce
reduce()方法接受一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值
function sum(arr) {
return arr.reduce((pre, item) => {
return pre + item;
});
}
console.log(sum([1, 2, 3, 4])); //10
方法四:eval
eval()函数可计算某个字符串,并执行其中的JavaScript代码
function sum(arr) {
return eval(arr.join("+"));
}
console.log(sum([1, 2, 3, 4])); //10