js中数组常用方法

1 push()在尾部加
2 pop()在尾部删
3 unshift()在头部加
4 shift()在头部删
5 reverse()颠倒数组
6 sort()数组按字母排序
7 concat()基于当前数组中的所有项创建一个新数组
8 slice()截取
9 splice()删除,插入,替换
10 jion()变成相应字符串

<script>
  //作者写好的方法都是要 在实例对象(就是原型对象 )下的,不能没有对象 就调用方法
  //数组常用方法 
  // 1  push 栈方法 在原数组末尾添加新项 参数是可以不限制数量的 返回新增后的数组长度  此方法会改变原数组

  //用构造函数生成数组对象 
  var arr = new Array(1, 2, 3, 4, 5);
  arr.push('shenshen');
  //看返回值 返回值是新增后的数组长度 
  console.log(arr.push('shenshen'));
  console.log(arr);

  //应用 可以使用for循环和push()方法生成一个n个元素的数组 
  var arrPush = [];
  for (i = 0; i < 50; i++) {
    arrPush.push(i);
  }
  console.log(arrPush);


  //2 pop()方法 栈方法 在数组尾部删除数组最后一项,不用写参数 塔只删除末尾最后一项 返回值是被删除的数组项 会改变原数组

  arr.pop();
  console.log(arr);
  //看此函数返回值  返回的是被删除的数组项 
  console.log(arr.pop());

  //应用 可以使用这个方法清空整个数组  
  // 但是,要注意的点是 此方法会改变原数组,原数组长度是个变值,因此需要一个变量提前存一下原数组长度,再进行循环
  for (var i = 0, len = arr.length; i < len; i++) {
    arr.pop();
  }
  console.log(arr);

  // 3 队列方法 
  //  unshift()在数组头部添加新项 返回新加入项后的数组长度 
  arr.unshift('heheeheh');
  console.log(arr);

  //4 shift();
  arr.shift();
  console.log(arr);


  //  重排序方法  这俩方法都改变原数组 
  // 5 reverse()  颠倒原数组的数组项的排列方式 不用传参 返回值是颠倒后的数组
  var arr2 = [1, 2, 3, 4, 5];
  // arr2.reverse();
  console.log(arr2);
  //返回颠倒后的数组 
  console.log(arr2.reverse());

  // 6 sort()  按字母升序(字母的ASCII码值)排序数组选项 默认不用传参 返回值是 排序后的数组
  var arr3 = ['s', 'd', 'z', 'd', 'a', 'f'];
  arr3.sort();
  console.log(arr3.sort());
  //sort()方法想要按照别的方式(不按方法默认字母排序)进行排序,就要给方法传一个方法

  var arrSort = [7, 6, 5, 4, 3, 2, 1];
  function Sx(x, y) {
    return x - y;  //升序方法 
  }
  arrSort.sort(Sx);
  console.log(arrSort);

  // 7 concat()方法 可以基于当前数组中的所有项创建一个新数组  参数可以是数组项也可以是数组 返回值是 

  var arr5 = [1, 3, 5, '申申', 6];
  //此方法是在原数组的基础上创建一个新数组 注意要提前声明一个数组来存放新的数组
  var newArr = arr5.concat('申施女');
  // 返回值是新数组
  console.log(newArr = arr5.concat('申施女'));


  //8  slice()方法  可以截取数组,截取到的放在一个新数组中  包括两个参数 是返回项的起始和结束位置,但不包括结束位置 

  var arr6 = [1, 4, 2, 'shenshen', 6, 7];

  var arr7 = arr6.slice(2, 5);
  //也可以在负数位置 负数就是从数组末尾往头部开始数 最后一个是-1
  var arr8 = arr6.slice(-5, -2);
  console.log(arr7);
  console.log(arr8);

  // 9  splice() 对数组进行删除,插入,替换 是数组方法中最强大的方法 
  // 9.1 删除 第一个参数删除的起始位置,第二个参数删除的长度,返回值是被删除的数组项组成的数组
  var sc = [1, 2, 3, 4, 5, 6, 7, 8, 9];
  sc.splice(2,5);//从索引2开始删除 删除5个 返回被删除的数组项组成的数组
  console.log(sc);
  //返回值是被删除的数组项组成的数组
  console.log(sc.splice(2,5));

  // 9.2 插入  这个功能是根据删除来的 第一个参数从某个位置开始删除,第二个位置删除长度设为0 ,从第三个 参数开始就是 要插入的数据 
  sc.splice(2,0,'申申','好好看!');
  console.log(sc);

  //9.3 替换 想要替换哪几个,就先把哪几个删了,第三个参数是要加的
  sc.splice(0,2,'申施女','笨死了!');//吧1,2 删除了,然后用'申施女','笨死了! 这俩替换 
  console.log(sc);

  // 10 join()方法 将数组转换成对应的字符串,参数就是连接符,不改变原数组
  
  //11 indexOf() 驼峰命名法 查找索引值对应的数组项是否存在 返回索引值 没有找到就返回-1
  // 有两个参数 要查找的数组项  和  表示查找起点位置的索引(可选的)
  var chaZhao = [1, 2, 3, 4, 1, 2, 4, '申申'];
  console.log(chaZhao.indexOf(4)); //3 找到第一个值为4的返回索引3;;
  console.log(chaZhao.indexOf(4, 4));//从索引为5 的位置开始找 就是找到最后一个4 返回索引值6
  console.log(chaZhao.indexOf(7));  // -1

  //迭代方法 
  // 新的5个迭代方法(ES5新增的方法,前面学习的方法都是ES5之前的方法),自带遍历。
  // 参数
  // 第一个参数:函数(做参数的函数又有三个参数)
  // 第二个参数:可选的参数,表示this指向(暂时忽略)

  // 12 forEach() 遍历数组 没有返回值 参数是一个函数 这个函数有三个参数 
  var arr12 = [1, 1, 2, 3, 4, 5, 5, 'sss'];
  arr12.forEach(function (value, index, array) {
    console.log(array);
  }
  )

  // 13 map()方法 一一映射  数组的每个数组项都要执行函数  返回值是每次函数的返回值组成的数组  
  var arr13 = [2, 2, 2, 3, 3, 5, 5];
  // 比如,寻找比2大的 并输出索引 用一个新数组来接受
  var newarr13 = arr13.map(function (value, index, array) {
    return value + "申";
  })
  console.log(newarr13);

  // 14 filter()  筛选 过滤 根据条件得到需要的数组项 返回值 该函数结果为 true 的项组成的数组
  var arr14 = [1, 2, 3, 'sss', '222']
  // 筛选数组中的字符串
  var newarr14 = arr14.filter(function (value, index, array) {
    if (typeof value == "string") {
      return value;
    }
  })
  console.log(newarr14);

  // 15 some 数组中只要有一项符合参数中函数的要求,就返回true 
  var arr15 = [1, '杨嘉琪', '我老婆'];
  //value, index, array 这三个参数 不用的可以不写 函数不限定参数个数
  var newarr15 = arr15.some(function (value, index, array) {
    return typeof value == "number";
  })
  console.log(newarr15); //因为some方法的返回值是布尔值,所以newarr15是布尔值变量
  
  console.log(typeof newarr15 );

  // 16 every() 必须规定的所有项都满足函数要求才返回 true
  var arr16=[1,2,3,4,5,'晶晶'];
  var result=arr16.every(function(){
    return typeof value=="number"; //数组的值不全是 number型 返回false
  })
 console.log(result);

// 17 reduce()   归并方法(统计)  返回最后的迭代值 
  // 即每一次迭代得到的结果会作为下一次迭代的初始值,这个方法都会迭代数组的所有项,然后构建一个最终返回的值。
  // 类似于求和的含义
  // 1.reduce() 方法,对数组中的每一项运行给定函数,从数组的第一项开始,逐个遍历到最后。
  // 两个参数:每一项上调用的函数、(可选的)作为归并的初始值。
  // 调用的函数接收4个参数:前一个值、当前值、项的索引和数组对象。

  // 第一种情况 reduce()有一个函数参数

  var arr17=[1,2,3,,4,5,6,7,8,9,10];
  var result17=arr17.reduce(function(pre,cur,index,array){
    return pre+cur;
  })
  console.log(result17);

  var arr18=[1,2,3,,4,5,6,7,8,9,10];
  var result18=arr18.reduce(function(pre,cur,index,array){
    return pre+cur;
  },100)
  console.log(result18);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值