总结数组的那些常用ApI

本文详细介绍了JavaScript中数组的一系列操作方法,包括Push、Unshift、Pop、Shift、Splice、Slice、Join、ToString、Concat、Reverse、Sort、Filter、Map、Find/FindIndex、Every、Some、Fill、Includes、IndexOf/LastIndexOf以及ForEach。这些API涵盖了数组的增、删、查、改等多种操作,帮助开发者更好地理解和使用JavaScript数组。

首先,数组的API 从简单到复杂,返回值可能不同,有的直接改变数组,有的不会直接改变数组,接受的数据不同,接下来就从这几方面去分析么个API,也不去分类,从功能来说,讲到哪个是哪个

- Push 增

arr.push(1,2,3);
向数组末尾增加一项或多项
改变数组本身
返回数组长度

- Unshift 增

arr.unshift(1,2,3);
向数组开始位置添加一项或多项
改变数组本身
返回数组长度

- Pop 删

arr.pop()
删除数组末尾第一个元素
改变数组本身
返回删除的元素

- shift 删

arr.shift()
删除数组开始位置第一个元素
改变数组本身
返回删除的元素

- splice 增/删

arr.splice(增或删的开始索引, 删除的数量,增加项)

  • 增(如果删除的数量为0,则为增加)
    arr.splice(0, 1); //从第0项开始删除,删除一项;

  • arr.splice(0, 0, '1', '2'); //从第0项开始添加,删除项为'1','2';

splice也会改变原数组
返回值为删除项构成的数组,如果是增加返回空数组[ ]

- slice 截取数组

newArr = arr.slice(2,5); 包含2不包含5
不改变原数组(需要赋值给新数组)
返回截取的数组

用arr.slice()可以实现数组的深拷贝

- join把数组转换为字符串

str = arr.join(',')
不改变原数组(需要赋值)
返回转换成的字符串

- toString 把数组转换为字符串

str = a.toString()
不改变原数组(需要赋值)
返回转换成的字符串

和join的区别就是,他的字符串分割符只能是逗号,无法自定义。

- concat 合并数组

newArr= arr1.concat(arr2,arr3);
不改变原数组(需要赋值)
返回新数组

- reverse 反转

arr.reverse()
改变原数组
返回反转的数组

- sort 排序

arr.sort(fn)
改变原数组
返回排序后的数组

sort不传参数时,按照字母的先后顺序排序。 sort传参时,必须传递一个数组。

function sortNumber(a,b)
{
return a - b
}

var arr = new Array(6)
arr[0] = "10"
arr[1] = "5"
arr[2] = "40"
arr[3] = "25"
arr[4] = "1000"
arr[5] = "1"

document.write(arr + "<br />")
document.write(arr.sort(sortNumber)) 
// 10,5,40,25,1000,1
// 1000,40,25,10,5,1

- filter 过滤

arr = [1,1000,24,2,3,10];
arr1 = arr.filter(item => item > 5 ); 
console.log(arr); // [1, 1000, 24, 2, 3, 10]
console.log(arr1); // // [1000, 24, 10]

不改变原数组(需要赋值)
接受一个返回条件的函数,返回符合条件项的数组

- map 映射

arr = [1,1000,24,2,3,10];
arr1 = arr.map(item => item + 1 ); 
console.log(arr); // [1, 1000, 24, 2, 3, 10]
console.log(arr1); // // [2, 1001, 25, 3, 4, 11]

不改变原数组(需要赋值)
接受一个返回新值的函数,返回新的数组

- find/findIndex 查找

arr = [1,1000,24,2,3,10];
a = arr.find(item => item > 5 ); 
index = arr.find(item => item > 5 ); 
console.log(arr); // [1, 1000, 24, 2, 3, 10]
console.log(a); // 1000
console.log(index) // 1

相当于搜索,不影响原数组
返回符合要求的第一个元素项

- every 所有

arr = [1,1000,24,2,3,10];
a = arr.every(item => item > 0 ); 
b = arr.every(item => item > 5 );
console.log(arr); // [1, 1000, 24, 2, 3, 10]
console.log(a); // true
console.log(b); // false

相当于一个判断,不改变原数组
返回true/false(是否所有项符合条件)

- some 部分

arr = [1,1000,24,2,3,10];
a = arr.some(item => item > 0 ); 
b = arr.some(item => item > 5 );
console.log(arr); // [1, 1000, 24, 2, 3, 10]
console.log(a); // true
console.log(b); // false

相当于一个判断,不影响原数组的改变
返回true/false(是否所有项符合条件)

- fill 填充

// 定义一个数组,规定它的长度,并填充
var arr = new Array(5).fill('a');
console.log(arr); // ['a','a','a','a','a']
a.fill(1);
console.log(a); // [1,1,1,1,1]

可以看出它返回的是一个新数组,并且改变了原数组

- includes 包含

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

判断,不影响原数组
返回true/false

- indexOf/lastIndexOf 包含

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

判断,不影响原数组
返回索引值

- forEach 循环

调用数组每一项执行回调函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值