JS总结之数组中常用的技巧
1. push()
push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。
var a = [🍎,🍏,🍉] a.push(🍉) console.log(a); //[🍎,🍏,🍉,🍉]
2. pop()
pop() 方法用于删除数组的最后一个元素并返回。
var a = [🍎,🍏,🍉,🍉] a.pop() console.log(a); //[🍎,🍏,🍉]
3. shift()
shift() 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值。
var a = [🍎,🍏,🍉] a.shift() console.log(a); //[🍏,🍉]
4. unshift()
unshift() 方法可向数组的开头添加一个或更多元素,并返回新的长度。
var a = [🍏,🍉] a.unshift(🍎,🍊) console.log(a); //[🍎,🍊,🍏,🍉]
5. sort()
sort() 方法用于对数组的元素进行排序。
var a = [🍏, 🍉, 🍏, 🍉] a.sort() console.log(a); //[🍏,🍏,🍉,🍉]
6. reverse()
reverse() 方法用于颠倒数组中元素的顺序。
var a = [🍏,🍏,🍉,🍉] a.reverse() console.log(a); //[🍉,🍉,🍏,🍏]
7.splice()
splice()删除、替换、添加
splice(index,howmany,item1,...,itemX)
index: 必需,整数,规定添加/删除项目的位置,使用负数可以从数组结尾处规定位置。
howmany: 必需,要删除的项目数量。如果设置为0,则不会删除项目。
item1,...,itemX: 可选。向数组添加的新项目。
☘️ 删除
var a = [🍉,🍉,🍏,🍏] a.slice(0,1) console.log(a); //[🍉,🍏,🍏]
☘️ 替换
var a = [🍉,🍏,🍏] a.splice(1, 1, '🍊') console.log(a); //[🍉,🍊,🍏]
☘️ 添加
var a = [🍉, 🍊, 🍏] a.splice(1, 0, 🍇) console.log(a); //[🍉,🍇,🍊,🍏]
8. split()
split() 方法用于把一个字符串分割成字符串数组。
stringObject.split(separator,howmany)
separator: 必需。字符串或正则表达式,从该参数指定的地方分割 stringObject。separator是一个空字符时,会返回一个单字符的数组。
howmany: 可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。
var a = "🍉-🍉🍉-🍊🍊-🍏🍏-🍇🍇🍇"; var c = a.split("-",3); console.log(c); // [🍉,🍉🍉,🍊🍊]
9. slice()
slice() 方法可从已有的数组中返回选定的元素。
arrayObject.slice(start,end)
start: 必需。规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。
end: 可选。规定从何处结束选取。该参数是数组片断结束处的数组下标。
1. 如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。
2. 如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。
var d = [1, 2, 3, 4, 5, 6, 7] var e; e = d.slice(0, 1); //从下标0开始,截取1位 console.log(e); //[1] e = d.slice(-4, -2); //截取-4到-2(不含-2)之间的元素 console.log(e); //[4, 5] e = d.slice(-4, 5); //截取-4到5(不含5)之间的元素 console.log(e); //[4, 5] e = d.slice(1, -1); //截取1到-1(不含-1)之间的元素 console.log(e); //[2, 3, 4, 5, 6]
10.indexOf()
indexOf()方法,得到数据的索引,找不到就返回-1。从开头(左)向后(右)查询。有两个参数(第一个:查询的参数,第二个:忽略当前位置之前的所有字符)
☘️ String
string的indexOf()是对数据进行了隐式转换,如果参数是数值它会转换为字符来进行查询然后返回索引,String.prototype.indexOf()使用的是==进行比较判断。
let str = '12341' console.log(str.indexOf(1)) // 输出 0 console.log(str.indexOf('1')) // 输出 0 console.log(str.indexOf(1, 1)) // 输出 4 ---> 查询1(第一个1),从索引为1(第二个1)开始查询
☘️ Number
Number类型使用,使用indexOf()查找索引会报错。
let num = 1234 console.log(num.indexOf(1)) // 报错 console.log(num.indexOf('1')) // 报错
☘️ Array
Array使用indexOf()方法,是不会对数据进行隐式转换,Array.prototype.indexOf()使用的是===进行比较判断。
var arr = [1, 2, 3, '4', 1, 2] console.log(arr.indexOf(3)) // 输出2 console.log(arr.indexOf('4')) // 输出3 console.log(arr.indexOf(4)) // 输出-1 console.log(arr.indexOf(1, 2)) // 输出 4 ---> 查询1,从索引为2开始查询