let arr = ['Joker','Pink','north','Red']
for 循环
普通的for循环,也是最常用到的
for(let i = 0;i<arr.length;i++){
console.log(arr[i]);
}
for in
for in 循环 用于遍历对象的属性
如果用其来遍历数组 key值则为下标
let obj = {
age: 18, name: "Joker", sayHello() {
console.log("Hello")
}
};
for (let key in obj) {
console.log(`key:${key},value:${obj[key]}`);
}
for of
for of 语句循环遍历可迭代对象的值。such as:数组,字符串,节点列表…
for (let item of arr) {
console.log(item)
}
forEach
ES5数组自带的循环,主要是用来遍历数组,性能比for循环还弱
arr.forEach((item,index,arr)=>{
console.log(`key:${index},value:${item}`)
})
map
用法与forEach类同,但参数中的函数支持返回值
返回值是一个新的数组,其每项就是参数中的函数返回的值
arr.map((value, index, array) => {
return value === 123;
});
filter
用法与forEach类同,但参数中的函数支持返回值
返回值为一个新的数组,如果参数中的函数返回为真 则会将这一项push进新的数组当中,为假或没有返回,则不会
arr.filter((value, key) => {
return value === 123;//[]
return value.indexOf('o') !== -1;//['Joker', 'north']
})
includes
检测数组当中是不是存在某个元素
console.log(arr.includes('Joker'));//true
console.log(arr.includes('111'));//false
console.log(arr.includes('north'));//true
find
寻找第一个符合条件的元素
console.log(arr.find((value, key, arr) => {
return value.indexOf('o') !== -1;
}));//Joker
**findIndex**
寻找第一个符合条件元素的索引
```javascript
console.log(arr.findIndex((value, key, arr) => {
return value.indexOf('o') !== -1;
}));//0
some
数组中是不是有值符合某个条件
所有值中有一个符合条件就不继续执行,返回true
console.log(arr.some((value, key, arr) => {
return value.indexOf('o') !== -1;
}));//true
every
数组中是不是所有值符合某个条件
所有值中有一个不符合条件就不继续执行,返回false
console.log(arr.every((value, key, arr) => {
return value.indexOf('o') !== -1;
}));//false