数组的常用方法(1)

1. push() 方法
定义:  push() 方法,向数组末尾添加新元素, 并返回新长度, 会改变原数组的长度。

实例:

let arr = [1,2,3,4,5]
console.log(arr.push(8))   // 6
console.log(arr) // [1,2,3,4,5,8]
2. pop() 方法
定义: pop() 方法,移除数组的最后一个元素,并返回该元素,会改变原数组的长度。

实例:

let arr = [1,2,3,4,5]
console.log(arr.pop())   // 5
console.log(arr)  //[1,2,3,4]
3. shift () 方法
定义: shift () 方法,移除数组的第一个元素,并返回该元素,会改变原数组的长度。

实例:

let arr = [1,2,3,4,5]
console.log(arr.shift())  // 1
console.log(arr)   // [2,3,4,5]
4. unshift () 方法
定义: unshift () 方法,在数组的开头添加一个新元素,并返回添加完后的新数组长度,会改变原数组的长度。

实例:

let arr = [1,2,3,4,5]
console.log(arr.unshift(5))    // 6
console.log(arr)  //[5,1,2,3,4,5]
5. splice () 方法
定义: splice () 方法,可以通过删除元素来实现插入、删除、替换

5.1 splice 删除  --  返回值是被删除的元素,会改变原数组的长度
语法:   array.splice(index,n)

参数:  

index:数组中需要删除数据的起始位置(索引值 )

n:需要删除的元素,数据的个数 

实例:

let arr = [1,2,3,4,5]
 
console.log(arr.splice(1,2))   // [2,3]
console.log(arr)      // [1,4,5]
5.2 splice 插入  --  返回值是[ ],会改变原数组
语法:  array.splice(index,0,data1,data2,....)

参数:

index:数组中需要插入数据的起始位置(索引值);

0:删除的个数为0;

data1,data2:需要插入的元素,用逗号隔开

实例:

let arr = [1,2,3,4,5]
 
console.log(arr.splice(1,0,6,8))   // []
console.log(arr)      // [1,6,8,2,3,4,5]
5.3 splice 替换  --  返回值是被替换的元素(或者说是被删除的元素)
语法:  array.splice(index,n,data1,data2,......)

参数:

index:需要替换的元素的起始位置(索引值);

n:需要替换的元素的个数,实质是删除;

data1,data2:需要插入元素,用逗号隔开;

实例: 

let arr = [1,2,3,4,5]
 
console.log(arr.splice(1,3,6,9))   // [2,3,4]
console.log(arr)      // [1,6,9,5]
6. concat() 方法
定义:   concat() 方法,可以将两个数组拼接在一起,返回一个拼接后的新数组,不改变原数组。

实例: 

let arr = [1,2,3,4,5]
let arr1 = [5,2]
 
console.log(arr.concat([6,9]))   // [1,2,3,4,5,6,9]
// 也可以拼到前面
console.log(arr1.concat([...arr])) // [5,2,1,2,3,4,5]
 
console.log(arr)      // [1,2,3,4,5]
7. split() 方法
定义: split() 方法,可以将字符串分割成为字符串数组,返回一个新的字符串数组

语法:  str.split(separator,howmany)

参数:

separator,必需,字符串或正则表达式,从该参数指定的地方分割 str,如果把空字符串 ('') 用作 separator,那么 str 中的每个字符之间都会被分割。

howmany,可选,该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。

实例: 

let str = 'hello world'
 
console.log(str.split(''))   // ['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd']
 
 
console.log(str.split('o'))  // ['hell', ' w', 'rld']
 
console.log(str.split('',4))  // ['h', 'e', 'l', 'l']
 
console.log(str)  //  hello world
8. join() 方法
定义: join() 方法,将数组元素转换为字符串,返回一个新的字符串,元素将由指定的分隔符分隔。默认分隔符是逗号 (,)。

实例:

let arr = [1,2,3,4,5]  
 
console.log(arr.join())  // 1,2,3,4,5
 
console.log(arr.join('-'))  // 1-2-3-4-5
 
 
console.log(arr.join('and'))  // 1and2and3and4and5
9. sort() 方法
定义: sort() 方法,是数组自带的一种排序方法,默认情况下,sort() 方法将按字母和升序,将值作为字符串进行排序,返回新数组,会改变原数组。

1. 当元素为字符串时

将元素从字符串从第一位开始比较,第一位相同时比较后一位。

var arr = ["cb","a","g","cy"];
arr.sort();
console.log(arr); //["a","cb","cy","g"]
2.当元素为数字时

默认将数字元素当做字符串来进行比较。先比较第一位,第一位相同时在比较后一位。

var arr2 = [20,13,11,8,0,11];
arr2.sort();
console.log(arr2); //[0,11,11,13,20,8]
 3. 控制sort()方法的排序方式

var arr2 = [20,13,11,8,0,11];
 
//按升序排列
 
arr2.sort(function(a,b){
    //a,b表示相邻的两个元素
    //若返回值>0,数组元素将按升序排列
    //若返回值<0,数组元素将按降序排列
    return a-b; 
});
console.log(arr2); //[0,8,11,11,13,20]; 新数组按升序排列
 
 
//按降序排列
 
arr2.sort(function(a,b){
    //a,b表示相邻的两个元素
    //若返回值>0,数组元素将按升序排列
    //若返回值<0,数组元素将按降序排列
    return b-a; 
});
console.log(arr2); //[20,13,11,11,8,0]; 新数组按降序排列
 
 
//随机排序
 
arr2.sort(function(a,b){
    return Math.random()-0.5;  //返回值的正负概率分别为50%,故升降序排列是随机的
});
console.log(arr2); //新数组随机排序
10. includes() 方法
定义:  includes() 方法用来判断一个数组是否包含一个指定的值,如果是返回 true,否则false。

语法: 

arr.includes(searchElement)

arr.includes(searchElement, fromIndex)

参数:

searchElement: 必须,需要查找的元素值。

fromIndex:可选,从该索引处开始查找 searchElement。如果为负值,则按升序从 array.length + fromIndex 的索引开始搜索。默认为 0。

实例: 

let arr = [22,15,0,6,32,13]  
 
console.log(arr.includes(15))  // true
 
console.log(arr.includes('15'))  // false
 
console.log(arr.includes(6,3))  // true 
 
console.log(arr.includes(6,4))  // false 
 
// 如果fromIndex 大于等于数组长度 ,则返回 false 。该数组不会被搜索
console.log(arr.includes(13,10))  // false 
 
// 如果 fromIndex 为负值,计算出的索引将作为开始搜索searchElement的位置。如果计算出的索引小于 0,则整个数组都会被搜索。
console.log(arr.includes(0,-5))  // true 
今天就先写到这里,明日再战!

每日一汤:

时间是个常数,但也是个变数。勤奋的人无穷多,懒惰的人无穷少。
 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值