写了两年的js,迷迷糊糊的,现在系统地回顾一下
文章目录
遍历对象的方法
for…in循环、Object.keys()、Object.entries()、Object.values()
1. for … in 循环
for (let key in obj) {
if (Object.hasOwnProperty(key)) {
console.log(obj[key]);
}
}
2. Object.keys()
Object.keys(obj).forEach(function(key) {
consolo.log(obj[key);
})
3. Object.values() 方法
Object.values(obj).forEach(function(value) {
console.log(value);
})
4. Object.entries() 方法
Object.entries(obj).forEach(function([key, value]) {
console.log(key, value);
})
遍历数组的方法
for循环、 forEach方法、for of循环、map、filter、reduce
- for 循环
for (let i = 0; i < arr.length; i++) {}
- for…of循环
for (let element of arr) {
console.log(element);
}
- map方法(会创建一个新数组)
arr.map(function(item) {
console.log(item);
})
- filter 方法(会创建一个新数组)
- reduce 方法
数组的全部方法
1. 添加、删除
push:尾部添加元素,返回新数组长度
pop:移除并返回数组的第一个元素
unshift:数组头部插入,返回新数组长度
shift:移除并返回数组的第一个元素
2. 合并、分割
concat: 合并数组,返回新数组
slice:分割数组的某一部分,包含起始位置,不包含结束为止
3. 修改数组
splice:从指定位置开始删除或添加元素
reverse:颠倒数组的顺序
sort:对数组进行排序
// 不改变原数组
// 使用场景一:按 Unicode 码点的顺序进行的,因此默认情况下,元素将被转换为字符串,然后按照字符串的 Unicode 码点进行排序
let fruits = ['apple', 'banana', 'orange', 'grape'];
fruits.sort();
console.log(fruits); // 输出:['apple', 'banana', 'grape', 'orange']
// 使用场景二:自定义排序函数。如果函数小于0,a在b之前;大于0,a在b之后;等于0顺序不变
let numbers = [10, 5, 8, 2, 1];
numbers.sort(function(a, b) {
return a - b;
});
console.log(numbers); // 输出:[1, 2, 5, 8, 10]
4. 查询元素
indexof:返回指定元素第一个出现的位置,没有返回-1
lastIndexOf:指定元素最后一次出现的索引,没有返回-1
includes
5. 遍历数组
foreach
map
filter
reduce
6. 其他方法
join
toString
isArray
7. 检测方法
every
some