Javscript数组的常用API总结

Javscript数组的API是JS中内置的处理数组的方法:

一、操作方法

 1: concat ( ) 

合并数组concat ,有返回值,返回的是一个合并之后的新数组,对原数组没有影响

		var arr1 = [1, 2];
		var arr2 = [3, 4];
		// result结果
		var res = arr1.concat(arr2);
		console.log(res, arr1, arr2);

 2:   push ( )

向数组的尾部添加项,有返回值,返回的是添加项之后的数组的长度,会改变原数组,如果想同时添加的多个项,用逗号隔开即可

var arr3 = [1, 2, 3, 4]
var res1 = arr3.push(5, 6, 7, 8, 9);
console.log(res1, arr3);

 3:   pop ( )

删除数组中的最后一个,有返回值,返回的是删除的项,会改变原数组

var arr3 = [1, 2, 3, 4]
var res2 = arr3.pop();
console.log(res2, arr3);

 4:   unshift ( )

向数组的头部添加 返回的是添加之后数组的长度,会改变原数组

var arr3 = [1, 2, 3, 4]
var res3 = arr3.unshift(10, 11, 12);
console.log(res3, arr3);

 5:   shift ( )

删除数组中的第一个 返回的是删除的项,改变原数组

		var arr3 = [1, 2, 3, 4]
		var res4 = arr3.shift();
		console.log(res4, arr3);

 6:    slice(start,end)

截取 返回值是截取下来的数组,对原数组是没有影响的。start 开始截取的索引值,end 结束截取的索引值(不包括)。只写一个值的话,就是从该索引开始往后截取,直到最后。

		var arr = [1, 1, 2, 2, 3, 3, 4, 4];
		var res = arr.slice(0, 3);
		console.log(res, arr);
		var res1 = arr.slice(5);
		console.log(res1);

 7: splice(start,count,newItem)

删除数组中的某些项 返回的是删除的数据,会改变原数组。

		var arr2 = [1, 2, 3, 4, 5, 6, 7, 8, 9];
		/*
			start 开始删除的索引位置
			count 要删除几个,非必填,如果不填,删除后面所有,如果是0,就不删除
			newItem 从第三个参数往后,从开始删除的位置,添加新的项
		*/
		var res3 = arr2.splice(5);
		console.log(res3,arr2);
	
		var arr3 = [1, 2, 3, 4, 5, 6, 7, 8, 9];
		var res4 = arr3.splice(5, 2);
		console.log(res4,arr3);

		var arr4 = [1, 2, 3, 4, 5, 6, 7, 8, 9];
		var res2 = arr4.splice(5, 2, 10, 11, 12, 13);
		console.log(res2, arr4);

 8:   delete ( ) 

删除某个,可以删除,但是位置会保留,数组的长度不会改变。

		var arr2 = [1, 2, 3, 4, 5, 6, 7, 8, 9];
		delete arr2[0];
		console.log(arr2);

 9: indexof ( )

获取首个指定元素在数组中的索引位置;如果指定的值在数组中不存在,则返回-1。如果存在,则返回该元素第一次出现的索引值。

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

10:   lastIndexOf ( )

从后往前去查找首个元素出现的位置,如果指定的值在数组中不存在,则返回-1。如果存在,则返回该元素第一次出现的索引值。

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

二、排序方法

1: reverse ( )

反转数组 返回的是反转之后的数组,改变原数组。

		var arr = [1, 2, 3, 4, 5, 6]
		var arr1 = arr.reverse()
		console.log(arr, arr1);

 2:   sort 排序

会改变原数组,有返回值,返回的是排序好的数组,默认从小到大,升序。

		var arr = [123, 31, 41, 888, 551, 1, 2, 4, 51, 547];
		var res = arr.sort();
		console.log(res);

三、转换方法

1: join ( ) 

将数组转为字符串。如果join ( )括号中不添加值,默认就是英文逗号隔开,原数组不变。 如果在join ( )括号中添加值,分隔符之后,每两项之间就会使用分隔符给隔开。

		var arr=[1,2,3,4,5,6,7,8,9]
		var res = arr.join();
		console.log(arr, res);
		var res1 = arr.join('|');
		console.log(arr, res1);

 2:   toString ( )

将数组转为字符串,不会改变原数组。

		var arr = [1, 2, 3, 4, 5, 6];
		var res = arr.toString();
		console.log(res, arr);

四、迭代方法

1: every ( )

对数组每一项都运行传入的测试函数,如果所有元素都满足返回 true ,只要有一个不满足返回false

        let num = [1, 300, 200, 5, 7]
        let arr = num.every(function (el) {
            return el %2 !== 0
        })
        console.log(arr) // true

        let arr2 = num.every(function (el) {
            return el > 100
        })
        console.log(arr2) // false

2:  some

some迭代函数是测试数组中的元素是否至少有一个满足条件。
返回值:有一个满足条件,则返回true;若都不满足条件,则返回false

      let num = [1, 300, 200, 5, 7]
       
        let arr = num.some(function (el) {
            return el > 100
        })
        console.log(arr) // true

        let arr_2= num.some(function (el) {
            return el > 400
        })
        console.log(arr_2) // false

3:  map

map方法:处理数组中的每个元素,然后将其返回值组成一个新的数组

        let num = [1, 2, 3, 4, 5]
        let arr = num.map((el) => {
            return el*2
        })
        console.log(arr) // [2, 4, 6, 8, 10]

4:  filter

filter方法:类似于数据库中的select查询语句,将满足条件的元素组成一个新数组返回

let num = [1, 2, 3, 4, 5, 4, 3, 2, 1];
let res = num.filter((item, index, array) => item > 2);  //ES6新语法
console.log(res); // 3,4,5,4,3

 5:  forEach

forEach:能迭代整个数组,没有返回值,和for循环的功能类似。

let num = [1, 2, 3, 4, 5, 4, 3, 2, 1];
num.forEach((item, index, array) => {
    // 执行某些操作
});

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值