js数组的遍历和常用方法

1.数组的添加

let arr = []
push方法,向数组的末尾添加数据
arr.push('a');
unshift方法,向数组的开头添加数据
arr.unshift('1');

2.数组的删除

let arr = []
pop方法,删除数组末尾的一个数据
arr.pop();
shift方法,删除数组开头的一个数据
arr.shift();

3.for遍历

let arr = [1, 2, 3, 4];
for (var i = 0; i < arr.length; i++) {
  console.log(arr[i]);
}

4.for of遍历

let arr = [1, 2, 3, 4];
for(var item of arr) {
  console.log(item);
}  

5.for in遍历

let arr = [1, 2, 3, 4];
for(var item in arr) {
  console.log(item);
} 

6.forEach()遍历

//注:不会改变原来的数组
let arr = [1, 2, 3, 4];
arr.forEach(item => {
    item = item * 2;
});
console.log(arr); // [1, 2, 3, 4] 

7.map()映射遍历

//注:数组元素个数不变,但是按照一定的条件转换  
let arr = [1, 2, 3, 4];
let newArr = arr.map(item => {
    return item * 2;
});
console.log(arr); // [1, 2, 3, 4]   原数组保持不变
console.log(newArr); // [2, 4, 6, 8] 返回新数组

8.filter()过滤遍历

//注: 有返回值,返回满足某个条件的元素构成的数组,数组元素个数可能改变,按照一定的条件返回
let arr = [1, 2, 3, 4];
let newArr = arr.filter(item => {
    return item < 3;
});
console.log(arr); // [1, 2, 3, 4]   原数组保持不变
console.log(newArr); // [1, 2]   返回新数组

9.find()遍历

let arr = [1, 2, 3, 4];
let newArr1 = arr.find(item => {
    return item > 2;
});
let newArr2 = arr.find(item => {
    return item > 5;
});
console.log(arr); // [1, 2, 3, 4]   原数组保持不变
console.log(newArr1); // 3  返回第一个符合条件的元素
console.log(newArr2); // undefined  没有符合条件的元素则返回undefined 

**10.indexOf()遍历 与lastIndexOf()遍历 **

//注: indexOf()从前向后遍历
//lastIndexOf()从后向前遍历
let fruits= ['苹果', '梨子', '桃子', , '西瓜', '哈密瓜'];
let indexOfFru = fruits.indexOf('桃子');
console.log(indexOfFru); // 2 
let lastIndexOfFru = fruits.lastIndexOf('西瓜');
console.log(lastIndexOfFru); // 3  

11.every()遍历

//注:全真为真,一假全假
let arr = [1, 2, 3, 4];
let newArr1 = arr.every(item => {
    return item > 2;
});
let newArr2 = arr.every(item => {
    return item < 5;
});
console.log(arr); // [1, 2, 3, 4]   原数组保持不变
console.log(newArr1); // false
console.log(newArr2); // true 

12.some()遍历

//注:一真全真,全假才假  
let arr = [1, 2, 3, 4];
let newArr1 = arr.some(item => {
    return item > 2;
});
let newArr2 = arr.some(item => {
    return item > 5;
});
console.log(arr); // [1, 2, 3, 4]   原数组保持不变
console.log(newArr1); // true
console.log(newArr2); // false

13.reduceRight()遍历

let arrNum = [2, 4, 6, 8, 10];
// 累加
let sum = arrNum.reduceRight((x, y)=>{
  return x + y;
});
console.log(sum); // 30

// 累乘
let multiple = arrNum.reduceRight((x, y)=>{
  return x * y;
});
console.log(multiple); // 3840

// 求最大值
let bigger = arrNum.reduceRight((x, y)=>{
  return x > y ? x : y;
});
console.log(bigger); // 10

//求平均值
let result = arrNum.reduce((tmp, item, index, arrNum) => {
    if ( index != arrNum.length-1 ) {      //不是最后一次先求和
        return tmp + item;
    } else {                            //最后一次求平均数
        return (tmp + item)/arrNum.length;
    }
});
console.log(result);    //6

14.遍历器机制

// keys()方法:默认遍历器,其值为集合中的所有键名。
// values()方法:默认遍历器,其值为集合中的所有值。
// entries()方法:默认遍历器,其值为所有成员的键值对。
const arr = ["A", "B", "C"];
console.log([...arr.keys()]); // [0, 1, 2]
console.log([...arr.values()]); // ["A", "B", "C"]
console.log([...arr.entries()]); // [[0, "A"],[1, "B"],[2, "C"]]

const set = new Set(arr);
console.log([...set.keys()]); // ["A", "B", "C"]
console.log([...set.values()]); // ["A", "B", "C"]
console.log([...set.entries()]); // [["A", "A"],["B", "B"],["C", "C"]]

const map = new Map().set("name", "Tom").set("age", 19);
console.log([...map.keys()]); // ["name", "age"]
console.log([...map.values()]); // ["Tom", 19]
console.log([...map.entries()]); // [["name", "Tom"],["age", 19]] 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值