数组Array的常用方法

目录

一、不改变原数组

1、 join()

2、split ()

3、concat()

4、slice() 

1、arr.slice(start,end) 从start下标开始截取,一直到end结束,不包括end

2、rr.slice(start) 从start下标开始截取,一直到最后 

 3、arr.slice( ) 全部截取

5、indexOf()用来查找元素在数组中第一次出现的位置

6、lastIndexOf()用来查找元素最后一次在数组中出现的位置

二、改变原数组

1、push()数组最后增加

2、pop()删除最后删除

3、unshift()数组最前增加

4、shift()数组最前删除

5、reverse() 翻转数组

6、sort()排序

7、splice()

1、arr.splice(start,deletedCount) 纯删除

2、arr.splice(start,deletedCount,item) 替换

3、arr.splice(start,0,item) 纯添加

三、数组遍历常用方法

1、forEach( )

2、map( )

3、filter( )过滤出符合条件的元素

4、some()判断数组中有没有符合条件的项(只要有,就返回true),如果一个都没有,才返回false

5、every()判断数组中所有的项是否满足要求,如果全都满足,才返回true,否则返回false

6、find()找到符合条件的项,并且返回第一项

7、findIndex()找到符合条件的项的下标,并且返回第一个

8、reduce()

1、求和

2、扁平化数组(拼接数组)

3、对象数组叠加计算

4、实际应用


一、不改变原数组

1、 join()

可以将数组里的元素,通过指定的分隔符,以字符串的形式连接起来。

返回值:返回一个新的字符串

//将数组用 - 符号连接起来
let arr = [1,2,3,4,5];
let str = arr.join('-');
console.log(str)//str = 1-2-3-4-5;
2、split ()

用指定的分隔符,将字符串分割成数组。

返回值:返回一个新的数组

let str = wqz-ttj;
let arr = str.split('-');
console.log(arr);// arr=['wqz','ttj'];
3、concat()

可以把两个数组里的元素拼接成一个新的数组

let arr1 = [1,2,3];
let arr2 = [4,5,6];
let arr = arr1.concat(arr2);
console.log(arr)
// 打印结果:[1,2,3,4,5,6];

let arr3 = [7,8,9];
let arr0 = arr1.concat(arr2,arr3);
console.log(arr0)
// 打印结果:[ 1, 2, 3, 4, 5, 6, 7, 8, 9]
4、slice() 

可以从数组中截取指定的字段,返回出来
返回值:返回截取出来的字段,放到新的数组中,不改变原数组

1、arr.slice(start,end) 从start下标开始截取,一直到end结束,不包括end
let arr = [0,1,2,3,4,5,6,7];
let newArr = arr.slice(0,3)//newArr = [0,1,2];
2、rr.slice(start) 从start下标开始截取,一直到最后 
let arr = [0,1,2,3,4,5,6,7];
let newArr = arr.slice(2)//newArr = [2,3,4,5,6,7];
 3、arr.slice( ) 全部截取
let arr = [0,1,2,3,4,5,6,7];
let newArr = arr.slice()//newArr = [0,1,2,3,4,5,6,7];
5、indexOf()用来查找元素在数组中第一次出现的位置

arr.indexOf (value,fromIndex),从fromIndex这个下标开始,元素第一次出现的位置

6、lastIndexOf()用来查找元素最后一次在数组中出现的位置

二、改变原数组
1、push()数组最后增加
2、pop()删除最后删除
3、unshift()数组最前增加
4、shift()数组最前删除
5、reverse() 翻转数组
6、sort()排序
7、splice()
1、arr.splice(start,deletedCount) 纯删除

从start下标开始,删除几个

2、arr.splice(start,deletedCount,item) 替换

从start下标开始,删除deletedCount个,并在该位置替换成item

3、arr.splice(start,0,item) 纯添加

从start下标开始,删除0个,并在该位置添加item,start开始全部往后移动

let arr = [1,2,6,7,8];
arr.splice(2,0,3,4,5);//arr = [1,2,3,4,5,6,7,8];
三、数组遍历常用方法
1、forEach( )
arr.forEach((item,index,arr)=>{
//里面的function是一个回调函数,
//item: 数组中的每一项;
//index:item 对应的下标索引值
//arr: 就是调用该方法的数组本身
})
2、map( )
let arr = [1,32,54,6,543];
let res = arr.map((item,index,arr)=>{
    //item: 数组中的每一项;
    //index:item 对应的下标索引值
    //arr: 就是调用该方法的数组本身
	return item*2;
})
3、filter( )过滤出符合条件的元素
let arr = [1, 3, 5, 2, 4, 6];
let res3 = arr.filter((item, index) => {
  return item % 2 === 0;
});
console.log(res3);
// 打印结果:[ 2, 4, 6 ]
4、some()判断数组中有没有符合条件的项(只要有,就返回true),如果一个都没有,才返回false
let arr3 = [
    { name: "zs", age: 18, done: "notYet" },
    { name: "ls", age: 20, done: true },
    { name: "ww", age: 22, done: true }
];
let res5 = arr3.some((item) => {
    return item.done;
});
console.log(res5);
// 打印结果:true
5、every()判断数组中所有的项是否满足要求,如果全都满足,才返回true,否则返回false
let arr3 = [
    { name: "zs", age: 18, done: "notYet" },
    { name: "ls", age: 20, done: true },
    { name: "ww", age: 22, done: true }
];
let res6 = arr3.every((item) => {
    return item.done;
});
console.log(res6);
// 打印结果:true
6、find()找到符合条件的项,并且返回第一项
let arr4 = [
    { id: 3, name: "ls", done: false },
    { id: 1, name: "zs", done: true },
    { id: 2, name: "ww", done: true }
];
var res7 = arr4.find((item) => {
    return item.done;
});
console.log(res7);
// 打印结果:{ id: 1, name: 'zs', done: true }
7、findIndex()找到符合条件的项的下标,并且返回第一个
let arr4 = [
    { id: 3, name: "ls", done: false },
    { id: 1, name: "zs", done: true },
    { id: 2, name: "ww", done: true }
];
var res8 = arr4.findIndex((item) => {
    return item.done;
});
console.log(res8);
// 打印结果:1
8、reduce()
1、求和
var arr1 = [1, 2, 3, 4, 5];
var new1 = arr1.reduce((pre, next, index) => {
    return pre + next;
    //pre+next=10+5=15
})
console.log(new1);
// 打印结果:15
2、扁平化数组(拼接数组)
var arr2 = [[1, 2, 3], [4, 5], [6, 7]];
var new2 = arr2.reduce((pre, next, index) => {
    return pre.concat(next);//前数组拼接后数组 .concat()
})
console.log(new2);
// 打印结果:[1, 2, 3, 4, 5, 6, 7]
3、对象数组叠加计算
var arr3 = [
    { price: 10, count: 1 },
    { price: 15, count: 2 },
    { price: 10, count: 3 }
];
var new3 = arr3.reduce((pre, next, index) => {
    return pre + next.price * next.count;
}, 0)	//在原数组第一项添加为0,不改变原数组,则可不操作第一项
console.log(new3);
// 打印结果:70
4、实际应用

应用 : 计算数组中每个元素出现的次数
投票板

var names = ['Alice', 'Bob', 'Tiff', 'Bruce', 'Alice'];
var countedNames = names.reduce((allNames, name) => {
    if (name in allNames) {
        allNames[name]++;
    } else {
        allNames[name] = 1;
    }
    return allNames;
}, {});
console.log(countedNames);
// 打印结果:{ Alice: 2, Bob: 1, Tiff: 1, Bruce: 1 }

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值