JS的一些数据类型的方法和函数(三)

接着(二)的内容继续写Array的方法和函数。

一.操作数组。

ES中为我们定义了多个操作数组的方法,这些方法可你让你更好的使用数组去做一些事情。

1、concat()

concat()方法可以基于当前数组所有项创建一个新数组,即将两个数组拼接到一起。

console.log([1,2,3,4,5].concat(['1','2','3'])) // [1, 2, 3, 4, 5, "1", "2", "3"]

上面的代码就是concat()的功能的体现。

 

2、slice()

slice()能够基于当前数组中的一个或多个项创建一个新数组。slice()方法可以接受一个或两个参数,即要返回的项的起始位置和结束位置。一个参数情况下,会返回从这个指定位置一直到数组的末尾项;两个参数的话,会返回从第一个参数的位置到第二个参数位置之间的所有的项。slice()并不会修改原数组。

let arr=[1,2,3,4,5]
console.log(arr.slice(0,3)) // [1, 2, 3]
console.log(arr.slice(3)) // [4, 5]
console.log(arr) // [1, 2, 3, 4, 5]

 

上面的代码就是slice()的使用示例。

3、splice()

splice()方法可以说是最强大的数组方法了,它的用法很多,但主要用于以下三种场景。

删除:可以删除任意数量的项,只需指定两个参数。第一个参数是第一项的位置,第二个参数是要删除多少项。

插入:可以向指定位置插入任意数量的项,三个参数。第一个参数是起始位置,第二个参数设置为0,代表不删除项,第三个参数代表插入的项,如果插入多个,可以在后面继续传入第四个 第五个参数。

替换:可以向指定位置插入任意项,并删除任意项,三个参数,就是上面两个的综合。

splice()会修改原数组,返回值为被删除的项(没有删除则返回[])。

 

let arr1=['a','b','s','c','d']
let arr2=[1,2,3,4,5]
let arr3=[{a:1,b:2},{c:3,d:4}]
console.log(arr1.splice(0,2)) // ["a", "b"]
console.log(arr1); //  ["s", "c", "d"]
console.log(arr2.splice(3,0,6,7,8,9)); // []
console.log(arr2); //  [1, 2, 3, 6, 7, 8, 9, 4, 5]
console.log(arr3.splice(0,1,'w','y','z')) // [{a: 1, b: 2}]
console.log(arr3) // ["w", "y", "z", {c: 3, d: 4}]

 

上面的代码就是splice()的功能示例。

 

二。位置方法

ES5中为数组实例添加了两个位置方法。indexOf()和lastIndexOf()。

indexOf()和lastIndexOf()接受两个参数,要查找的想和查找起点位置的索引,indexOf()是从前向后找,lastIndexOf()从后向前找。返回查找到的项的索引(没有找到返回-1)

 

let arr=[1,2,3,4,5,3,4];
console.log(arr.indexOf(3)) // 2
console.log(arr.indexOf(3,4)) // 5
console.log(arr.lastIndexOf(4)) // 6
console.log(arr.lastIndexOf(4,5)) // 3
console.log(arr.indexOf(6)) // -1

 

 

 

上面的代码就是这两个方法的功能实例。

三、迭代方法

ES5定义了五个迭代方法,每个方法接受两个参数(要在每一项上运行的函数,(可选)运行该函数的作用域)传入的函数接收三个参数(数组项的值,项的索引,数组对象本身)。

every()对数组的每一项运行传入的函数,如果该函数对每一项都返回true,则返回true。

filter()对数组每一项运行传入函数,返回该函数会返回true的项所组成的数组。

forEach()对数组中的每一项运行传入函数,无返回值。

map()对数组中每一项运行传入函数,返回每次函数调用结果组成的数组。

some()对数组中每一项运行传入函数,只要有一项返回true,则返回true。

let arr=[1,2,3,5,4,6,2,5];
console.log(arr.every(function(value,index,array){
    return (value>2)
})) // false
console.log(arr.some(function(value,index,array){
    return (value>2)
})) // true
console.log(arr.filter(function(value,index,array){
    return (value>2)
})) // [3, 5, 4, 6, 5]
console.log(arr.map(function(value,index,array){
    return value*2
})) // [2, 4, 6, 10, 8, 12, 4, 10]
console.log(arr.forEach(function(value,index,array){
    return value*2
})) // undefined

 

上面的代码就是这些方法的功能实例。

 

四、归并方法

ES5新增的两个归并数组的方法:reduce()和reduceRight()。这两个方法都会迭代数组的所有项,然后构建一个最终返回的值。reduce()从头到尾,reduceRight()从尾到头。

接收两个参数(调用的函数,归并基础的初始值(可选))。调用的函数接收四个参数(前一个值,当前值,项的索引,数组对象)。

let arr=[1,2,3,4,5]
console.log(arr.reduce(function(prev,cur,index,array){
    return prev*cur
})) // 120
console.log(arr.reduceRight(function(prev,cur,index,array){
    return prev*cur
})) // 120

 

上面的代码就是这些方法的功能实例。

 

至此,array数据类型的方法基本介绍完了,接下来会继续更新。

 

posted @ 2020-09-16 09:43  FuloliyaLansfroya  阅读(130)  评论(0)    收藏  举报