数组的常用方法

1.数组常用方法之 push

push是用来在数组的末尾追加一个元素,返回添加以后的长度

var arr=[1,2,3];
//可追加一个
arr.push(5);
//可追加多个
arr.push(6,7,8);
console.log(arr);

运行结果:

2.数组常用方法之pop

pop 是用来删除数组末尾的一个元素,返回删除的元素

var arr=[1,2,3];
var res = arr.pop() 
console.log(res);//结果为3

3.数组常用方法之 unshift

unshift是在数组的最前面添加一个元素

var arr = [1,2,3];
arr.unshift(4);
console.log(arr);//[4,1,2,3]

4.数组常用方法之shift

shift是删除数组最前面的一个元素,返回删除的元素。

var arr = [1,2,3];
var res = arr.shift();
console.log(res);//1

5.数组常用方法之splice

splice是截取数组中的某些内容,按照数组的索引来截取。

语法:splice(从哪个索引位置开始,截取多少个,替换的新元素)(第三个参数可不写)

var arr = [2,3,4,5];
arr.splice(0,2,'nihao','hi');
console.log(arr);// ['nihao', 'hi', 4, 5]

6.数组常用方法之reverse

reverse是用来反转数组使用的

var arr = [1,2,3];
arr.reverse();
console.log(arr);//[3,2,1]

7.数组常用方法之sort

sort 是用来给数组排序的(默认按照字典排序 先按照第一位排序-如果第一位相等就按照第二位)

字符串升序,降序排列

//降序排列
let arr = ['a', 'b', 'd', 'c'];
arr.sort(function (a, b) {
	if(a > b){
		return -1;
	}else if(b > a){
		return 1;
	}else{
		return 0;
	}
});
console.log(arr);

//升序排列
let arr = ['a', 'b', 'd', 'c'];
arr.sort(function (a, b) {
	if(a > b){
		return 1;
	}else if(b > a){
		return -1;
	}else{
		return 0;
	}
});
console.log(arr);

数字的降序,升序排列

//升序
var arr = [1, 5, 3, 7, 6];
arr.sort(function (a, b) {
	return a - b;
});
//降序
var arr = [1, 5, 3, 7, 6];
arr.sort(function (a, b) {
	return b - a;
});

以数组中字符串的长度进行排序

let arr = ['1234', '56', '23980', '234', '7'];
arr.sort(function (a, b) {
	return a.length - b.length;
});

随机乱序

    let arr = [1, 2, 4, 5, 3, 11, 28, 97, 0];
    arr.sort((a,b)=>Math.random()-0.5);

        

以数组中的对象中的某个属性值进行排序

let arr = [
{name: 'ww', age: 12},
{name: 'gg', age: 8},
{name: 'uu', age: 69}
];
arr.sort(function (a, b) {
	return a.age - b.age;
});

8.数组常用方法之 concat

  • concat 是把多个数组进行拼接

  • 和之前的方法有一些不一样的地方,就是 concat 不会改变原始数组,而是返回一个新的数组

var arr = [1, 2, 3]

// 使用 concat 方法拼接数组
var newArr = arr.concat([4, 5, 6])

console.log(arr) // [1, 2, 3]
console.log(newArr) // [1, 2, 3, 4, 5, 6]

9.数组常用方法之 join

  • join 是把数组里面的每一项内容链接起来,变成一个字符串

  • 可以自己定义每一项之间链接的内容 join(要以什么内容链接)

        不会改变原始数组,而是把链接好的字符串返回

var arr = [1,2,3];
var res = arr.join('+');
console.log(res);//1+2+3

10.slice 复制数组的一部分

var arr9 = [9,8,7,6,5,4,3,2];
//两个参数 slice(开始位置,结束位置)(不包含结束位置)不改变原数组
console.log(arr9.slice(1,3));//[8, 7]
//一个参数 从start开始到最后
console.log(arr9.slice(3));//[6, 5, 4, 3, 2]
//第二位是负值 从后往前 最后一位是 -1
console.log(arr9.slice(1,-2));//[8, 7, 6, 5, 4]

//indexOf 查找元素的第一次出现的下标,如果找到返回下标,找不到返回-1
console.log(arr9.indexOf(100));//-1
console.log(arr9.indexOf(3));//6

11.filter 过滤(根据条件过滤想要的数据)

根据对象里的id过滤出想要的数据

let data = [
      {
        id: 0,
        name: "篮球",
        pprice: 200,
        pmun: 20,
      },
      {
        id: 1,
        name: "足球",
        pprice: 150,
        pmun: 25,
      },
      {
        id: 2,
        name: "海绵宝宝玩偶",
        pprice: 160,
        pmun: 30,
      },
      {
        id: 3,
        name: "dnf赛利亚手办",
        pprice: 350,
        pmun: 15,
      },
      {
        id: 4,
        name: "T恤",
        pprice: 50,
        pmun: 346,
      },
      {
        id: 5,
        name: "键盘",
        pprice: 385,
        pmun: 20,
      },
    ];
    let arr = [2, 0, 1];
    //在data里面是否包含arr里面的数组
    //let wantData = data.filter((item) => arr.indexOf(item.id) > -1);
    //或者可以用includes()来判断是否存在
    let newData = data.filter(item=>arr.includes(item.id));
    console.log(wantData);

12.reduce对数组做聚合操作,返回一个计算的结果

计算数据中为true的总价
 let sum = data
   .filter((item) => item.isTrue)
   .reduce((sum, v) => sum + v.pprice * v.pmun, 0);
 console.log(sum);

13.map循环原数组,可以对数组的每一项进行改造返回改造后的数组

//取出数据里的name    
let newData = data.map((item) => item.name);
console.log(newData);

14.findIndex和indexOf

1.区别:indexOf可以判断数组里的简单数据类型比如数字或者字符串,findIndex可以根据条件判断此数据在数组中的位置。

2.应用:这两种方法成功找到数据时会返回数组下标,找不到时会返回-1。可以根据这个特性findIndex(条件)>-1或者indexOf(数据)>-1来判断是否存在。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值