JavaScript——数组

JavaScript——数组


一、数组 基本方法

1. arr.push()

- - 往数组的末尾添加一个或多个元素,返回当前被修改后的数组的最新长度
- - - - 该方法会改变原数组
let arr = [
	{name: '张三',age: 20,sex:'男'},
    {name: '李四',age: 20,sex:'男'}
]

arr.push({ name: '王五',age: 20,sex:'男' })
console.log(arr);
/*
[
  { name: '张三', age: 20, sex: '男' },
  { name: '李四', age: 20, sex: '男' },
  { name: '王五', age: 20, sex: '男' }
]
*/

2. arr.pop()

- - pop 
		用于删除数组中最后的一位元素
        返回被删除的这个元素,如果素组为空数组,返回值会是undefined
- - - - -  该方法会改变原数组
	let arr = [ {name: '张三',age: 20,sex:'男'},
	            {name: '李四',age: 20,sex:'男'}
	]
	let res = arr.pop()
	console.log(res);//{name: '李四',age: 20,sex:'男'}
	console.log(arr);//{name: '张三',age: 20,sex:'男'}

3. arr.unshift()

- - unshift
       将一个或多个元素添加到数组的开头
       返回值是被修改后的数组的个数
- - - - - 该方法会改变原数组	
	let arr = [ {name: '张三',age: 20,sex:'男'},
	            {name: '李四',age: 20,sex:'男'}
	]
	arr.unshift({name: '王五',age: 20,sex:'男'})
	console.log(arr);
	/* 
	[
	  { name: '王五', age: 20, sex: '男' },
	  { name: '张三', age: 20, sex: '男' },
	  { name: '李四', age: 20, sex: '男' }
	] 
	*/

4. arr.shift()

-  - 用于删除数组中的第一位
	如果是一个空数组,返回undefined,如果不是,则返回被删除的元素
 - - - - - 该方法会改变原数组
let arr = [ {name: '张三',age: 20,sex:'男'},
            {name: '李四',age: 20,sex:'男'}
]
let res = arr.shift()
console.log(res);//{ name: '张三', age: 20, sex: '男' }
console.log(arr);//[ { name: '李四', age: 20, sex: '男' } ]

二、数组排序方法

1. arr.sort(函数)

- 如果说不提供任何的参数,则根据默认规则来进行排序(根据unicode来进行排序)
            - 如果提供参数(函数),我们可以指定排序的规则
                - a 
                - b
                a 和 b代表两个在比较的值
	let arr = [1,2,4,3,5,8,6,7,9]
	arr.sort((a,b)=>a-b)
	console.log(arr);//[1, 2, 3, 4, 5,6, 7, 8, 9]
	arr.sort((a,b)=>b-a)
	console.log(arr);//[9, 8, 7, 6, 5,4, 3, 2, 1]

三、数组常用方法

1. arr1.concat(arr2)

- - concat 用于拼接两个或两个以上的数组,并返回一个新数组
- - - - - 不会改变原有数组的值
	let arr1 = [1,2,3]
	let arr2 = [4,5,6]
	
	let res = arr1.concat(arr2)
	console.log(res);//[ 1, 2, 3, 4, 5, 6 ]

2. arr.join(sparator)

- - 把数组拼接起来,以字符串的方式,进行返回,如果不给参数,默认以逗号进行间隔
- - sparator
                决定以什么符号对数组的里面进行拼接
- - 	如果数组是一个空数组的话,则会返回一个空字符串
	let arr = [1,2,3]
	let res = ar1.join('@')
	console.log(res); // 1@2@3

3. arr.reverse()

- - reverse会把数组中的所有内容颠倒过来,并且返回一个新的数组
- - - - - - -会改变原有的数组
let arr = [1,2,3]
let res = arr.reverse()
console.log(res);//[ 3, 2, 1 ]

四、数组查找方法

1. arr.indexOf(searchValue,[fromIndex])

- 查找目标字符串中,是否包含searchValue,如果包含,返回第一次出现的索引,如果不包含,返回-1
- searchValue 要查找的值
- fromIndex 查找的起始位置,如果不填,默认为0
- 	如果大于或者等于length,则返回-1
    如果说是一个负数(如果这个负数的绝对值超过length,则fromIndex为0),根据倒数来确认查找的位置
              length + fromIndex
	var arr = ["a","b","c","a"];
    console.log(arr.indexOf("vv")); //-1
    console.log(arr.indexOf("a",arr.length));   //-1
    console.log(arr.indexOf("a", -2));  //3
    console.log(arr.indexOf("a", -50)); //0

2. arr.indexOf(searchValue,[fromIndex])

- 查找目标字符串中,是否包含searchValue,如果包含,返回第一次出现的索引,如果不包含,返回-1
- searchValue 要查找的值
- fromIndex 查找的起始位置,如果不填,默认为0
- 	如果大于或者等于length,则返回-1
    如果说是一个负数(如果这个负数的绝对值超过length,则fromIndex为0),根据倒数来确认查找的位置
      length + fromIndex
	var arr = ["a","b","c","a"];
	console.log(arr.indexOf("vv")); //-1
	console.log(arr.indexOf("a",arr.length));   //-1
	console.log(arr.indexOf("a", -2));  //3
	console.log(arr.indexOf("a", -50)); //0

五、数组截取方法

1. slice(begin,end)

- 用于截取数组中的内容,返回一个新数组
- begin
    - 如果不给,默认为0
    - 截取的起始位置
    - 如果值超过了length,就会返回一个空数组给你
    - 如果是一个负数(负数的绝对值超过了length,就会默认从0开始截取),那就说明从倒数第begin开始截取
        length + begin
- - end
    - 如果不给,默认到数组结尾
    - 控制截取的结束位置
    - 如果小于(从位置上来说)bengin,会得到一个空字符串
    - 如果是负数(如果负数的绝对值超过了length,那么就会得到一个空字符串),那么就说明从倒数第end个结束。
    - 如果超过了length,默认也只到数组的结尾位置
begin是包含在内的,end是不包含在截取范围内
	var arr = ["a","b","c","d","e"];
	console.log(arr.slice(2)); //["c", "d", "e"]
	console.log(arr);  //["a", "b", "c", "d", "e"]
	console.log(arr.slice(50)); // []
	console.log(arr.slice(-2)); //["d", "e"]
	console.log(arr.slice(-50));//["a", "b", "c", "d", "e"]
	console.log(arr.slice(2,-1));// ["c", "d"]
	console.log(arr.slice(0, -50));// []
	console.log(arr.slice(0, 50));//["a", "b", "c", "d", "e"]

六、数组新增方法

1. arr.forEach(callback,[thisArg])

- 对数组中的每一个元素,执行一次提供的函数
-  arr.forEach(ele,index)
	- ele :循环过程中的每一位元素
	- index: 当前循环的元素对应的下标值
	- arr :调用forEach的当前数组
- thisArg: 控制当前callback中的this指向
	let arr = [1, 2, 3]
	arr.forEach((item, index) => {
	    console.log(item,index);
	})
	/* 
	1 0
	2 1
	3 2 
	*/

2. arr.filter(callback,[thisArg])

- 筛选出符合函数中条件的元素,并作为一个新数组返回
-   arr.filter(ele,index)
	- - ele :循环过程中的每一位元素
	- - index: 当前循环的元素对应的下标值
	- - arr :调用filter的当前数组
	let arr = [1, 2, 3]
	let res = arr.filter(item => item > 1)
	console.log(res);//[ 2, 3 ]

3. arr.reduce(callback,[initValue])

- 判断数组中的每一个元素,是否都符合callback函数中的条件,返回ture 或 flase
- arr.reduce(function(result,ele,index)
	- - result 结果
	- - ele :当前正在循环的元素
	- - index :当前正在循环的元素对应的索引值
- initValue 可选。对于result进行初始化
	let arr = [1, 2, 3]
	let res = arr.reduce(item => item > 0)
	console.log(res);//true

4. some(callback,[thisAry])

- 测试数组中是否至少有一个元素通过了指定函数的测试,结果返回布尔值
	let arr = [1, 2, 3]
	let res = arr.some(item => item > 4)
	console.log(res);//false

5. every(callbac,[thisAry])

- 测试数组中所有元素都通过了指定函数的测试,结果返回布尔值
	let arr = [1, 2, 3]
	let res = arr.every(item => item > 0)
	console.log(res);//true

5. map(callbac,[thisAry])

- map() 方法创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果
	let arr = [4, 5, 6, 7, 8]
	
	let arrMap = arr.map(item => item * 2)
	console.log(arrMap);//[ 8, 10, 12, 14, 16 ]

总结

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值