ES5/ES6数组的使用和方法

博客介绍了JavaScript中数组的多个方法,如forEach()、map()、every()、some()、find()、findIndex(),还提及了arr.forEach()和arr.map()的区别,最后有数组相关练习。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、forEach()

1)定义:forEach会遍历数组, 没有返回值, 不允许在循环体内写return, 不会改变原来数组。

2)参数:value -- 当前索引的值
         index -- 索引
         array -- 原数组
let arr = [1,2,3]
arr.forEach((value,index,array)=>{
    console.log(value,index,array)
})

2、map()

1)定义:遍历(映射)数组,会返回一个新数组,不会改变原数组
2)参数:value -- 当前索引的值
         index -- 索引
         array -- 原数组
var arr = [1,2,3,4]
var arr1 = arr.map((value,index,array)=>{ 
 value = value * 3
 return value
})
console.log(arr1); // [3,6,9,12]

ps: arr.forEach()和arr.map()的区别

 1. arr.forEach()是和for循环一样,是代替for。arr.map()是修改数组其中的数据,并返回新的数据。
2. arr.forEach() 没有return  arr.map() 有return

3、every()

1)定义:every遍历数组, 每一项都是true, 则返回true, 只要有一个是false, 就返回false。
2)参数:value -- 当前索引的值
         index -- 索
let arr = [1,2,3,4,5]
let arr1 = arr.every( (value, index) =>value<3)
	console.log(arr1) // false
let arr2 = arr.every( (value, index) =>value<6)
	console.log(arr2)  // true

4、some()

1)定义:依据判断条件,数组的元素是否有一个满足,若有一个满足则返回ture,否则返回false
2)参数:value -- 当前索引的值
         index -- 索引
let arr = [1,2,3,4,5]
let arr1 = arr.filter( (value, index) => value<3)
	console.log(arr1)    // [1, 2]

6、find()

1)定义:找到第一个符合条件的数组成员
2)参数:value -- 当前索引的值
         index -- 索引
         array -- 原数组
let arr = [1,2,3,4,5,2,4]
let arr1 = arr.find((value, index, array) =>value > 2)
console.log(arr1)   // 3

7、findIndex()

1)定义:找到第一个符合条件的数组成员的索引值
2)参数:value -- 当前索引的值
         index -- 索引
         array -- 原数组
let arr = [1,2,3,4,5]
let arr1 = arr.findIndex((value, index, array) => value > 3)
console.log(arr1)  // 3

数组的练习

let heros = [
    // power: 武力    wisdom:智力
    { id: 1, name: '张飞', power: 97, wisdom: 10 },
    { id: 2, name: '诸葛亮', power: 55, wisdom: 99 },
    { id: 3, name: '赵云', power: 97, wisdom: 66 },
    { id: 4, name: '周瑜', power: 80, wisdom: 98 },
    { id: 5, name: '吕布', power: 100, wisdom: 8 },
    { id: 6, name: '司马懿', power: 30, wisdom: 98 }
  ]
  要求:使用上述方法完成
      //   功能1. 求数组中所有英雄的武力平均值
      let mean = 0;
      heros.forEach((value, index) => (mean += heros[index].power));
      console.log(mean / heros.length);

      //   功能2. 得到一个新数组,只保留英雄的名字
      let newname = [];
      heros.forEach((value, index) => newname.push(heros[index].name));
      console.log(newname);

      //   功能3. 得到一个新数组,新数组中只保留武力值超过90的英雄
      let newname1 = [];
      heros.findIndex((value, index) => {
        if (heros[index].power > 90) {
          newname1.push(heros[index]);
        }
      });
      console.log(newname1);

      //   功能4. 删除数组中名字为周瑜的英雄
      let arr1 = [];
      heros.find((value, index) => {
        if (heros[index].name != "周瑜") {
          arr1.push(heros[index]);
        }
      });
      console.log(arr1);

      //   功能5. 删除数组中名字叫所有智力低于60的英雄
      let arr2 = [];
      heros.find((value, index) => {
        if (heros[index].wisdom > 60) {
          arr2.push(heros[index].name);
        }
      });
      console.log(arr2);

      //   功能6. 判断数组中所有英雄的武力是否都超过60, 如果是,打印全是猛将否则打印还有弱鸡
      heros.every((value, index) => {
        if (heros[index].power > 60) {
          console.log("还有弱鸡");
        } else {
          console.log("全是猛将");
        }
      });
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值