JavaScript 常用的数组函数

本博客学习书籍:《学习JavaScript数据结构与算法》
本博客学习章节:第二章

常用的数组函数

对单个或多个数组元素进行操作的

  • unshift(value) 在数组首位插入元素,插入值会作为数组的第一个元素,返回值为数组修改后的长度

  • shift() 删除数组的第一个元素,返回值为被删除的元素

  • push(value) 在数组末尾插入元素,插入值会作为数组的最后一个元素,返回值为数组修改后的长度

  • pop() 删除数组的最后一个元素,返回值为被删除的元素

  • splice(index, length) 从下标index开始,删除length个元素

    var arr = [1,2,3,5,6,7];
    // 相当于 arr.shift()
    arr.splice(0,1);
    // 相当于 arr.pop()
    arr.splice(arr.length - 1, 1);
    
  • splice(index, 0, 88, 99) 从下标index开始,删除0个元素,添加88,99两个元素

    var arr = [1,2,3,5,6,7];
    // 相当于 arr.unshift(66)
    arr.splice(0, 0, 66);
    // 相当于 arr.push(99)
    arr.splice(arr.length, 0, 99);
    
  • slice( 0, 5) 从下标0开始,到下标5之前的元素作为新数组返回

    var arr = [1,2,3,5,6,7];
    arr.slice(0,5);
    

对整个数组进行操作的

创建数组

方法名描述返回值
concat连接2个或多个数组连接后的数组
es6、es7标准
copyWithin从数组的指定位置拷贝元素到数组的另一个指定位置中数组
fill用静态值填充数组数组
Array.from根据已有数组创建一个新数组(深拷贝)数组
Array.of根据传入的参数创建一个新数组(深拷贝)数组
// concat
var bigArr = [-3,-2,-1].concat([0], [1,2,3]);

// copWithin
var numStr = ['one', 'two', 'three', 'four', 'five','six'];
// 在下标为3的元素'four'开始,复制下标0到下标2之前的元素'one', 'two'
numStr.copyWithin(3,0,2);
// ["one", "two", "three", "one", "two", "six"]

// fill
// 将值'one'填充在下标2到下标5之前的元素的位置上
numStr.fill('one',2,5)
// ["one", "two", "one", "one", "one", "six"]
// 创建数组并初始化
let numArr = Array(10).fill(1);

// Array.from 深拷贝
var numStr1 = Array.from(numStr);

// Array.of 深拷贝
var numStr2 = Array.of(...numStr);

from的更多用法请参考:ES6,Array.from()函数的用法

查找某个符合条件的

方法名描述返回值
indexOf返回第一个与参数相等的数组元素的索引,没有找到返回-1数组下标 或 -1
lastIndexOf返回最后一个与参数相等的数组元素的索引,没有找到返回-1数组下标 或 -1
es6、es7标准
find根据回调函数的条件,返回查找到的元素数组元素 或 undefined
findIndex根据回调函数的条件,返回查找到的元素下标数组下标 或 -1
includes查找某个元素(只能查找Number、String类型的元素)Boolean
var bigArr = [-2,0,1,2,7,6,8,2,-1];
// indexOf
var index1 = bigArr.indexOf(2);
// lastIndexOf
var index2 = bigArr.lastIndexOf(2);

// es6
var bigArr = [{ name:'apple', age:1},{ name:'purple', age:2},{ name:'banana', age:2}];
// find
var objSelected = bigArr.find((a)=>{ return a.age == 2})
// findIndex
var objSelectedIndex = bigArr.findIndex((a)=>{ return a.age == 2})
// includes
var bigArr = ['one','1one'];
var has8 = bigArr.includes('one')

排序

方法名描述返回值
reverse数组倒序倒序后的数组
sort按照字母顺序对数组排序,支持传入指定排序方法排序后的数组
var bigArr = [-3,-2,-1,0,1,2,3];
// reverse
var reverseArr = bigArr.reverse();
// sort
var sortArr = bigArr.sort(); //  [-1, -2, -3, 0, 1, 2, 3]
// sort 升序
var sortArr2 = bigArr.sort((a,b)=>{
	return a - b;
}); 
// sort 降序
var sortArr2 = bigArr.sort((a,b)=>{
	return b - a;
}); 

迭代

方法名描述返回值
filter过滤数组,筛选出满足条件的元素过滤后的数组
map对每个数组元素执行函数后,组成新数组执行后的新数组
forEach循环数组
every对数组中的每一项运行函数,如果该函数对每一项都返回true,则返回trueboolean
some对数组中的每一项运行函数,只要有一项返回true,则返回trueboolean
es6、es7标准
for...of循环数组
// concat
var bigArr = [-3,-2,-1].concat([0], [1,2,3]);
// every
var isEveryZhenShu = bigArr.every(function(a){
	return a > 0
});
// some
var hasZhenShu = bigArr.some(function(a){
	return a > 0
});
// filter
var zhenShuArr = bigArr.filter(function(a){
	return a > 0
});
// map es6写法
var nihaoArr = bigArr.map((r)=>{ return 'nihao: ' + r});
// forEach
bigArr.forEach(function(a,index){
	console.log(`${index}个元素:${a}`);
})
// for...of
for(let a of bigArr){
	console.log(a > 0 ? (a % 2 == 0) ? a + ' even' : a + ' odd': a + ' 负数或0');
}
其他
方法名描述返回值
join将所有的数组元素连接成一个字符串字符串
reduce累加器累加值
var bigArr = [1,2,3,4,5,6];
// join
var selected = bigArr.join(',');
// join(',') 相当于 toString()
var selected2 = bigArr.toString();

// reduce es6写法
var sum = bigArr.reduce((pre,curr,index)=>{
	return pre + curr
});
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值