JavaScript 数组方法的整理

1.Array对象的方法

1.1 concat( ) 方法

定义和用法
concat ( ) 方法用于连接两个或多个数组
该方法不会改变你现有的数组,而仅仅会返回被连接数组的一个副本.
示例:

let arr = [1,2,3]
let num = [4,5,6]
let test = [7,8,9]
let children = arr.concat(num,test)

输出结果: 123456789.
参数
array2,array3,…arrayX 必需,该参数可以是具体的值,也可以是数组对象,可以是任意多个
这个方法的返回值:
返回一个新的数组,该数组是通过把所有array 参数添加到 arrayObject 中生成的,如果要进行 concat()操作的参数是数组,那么添加的是数组中的元素,而不是数组

1.2 copyWithin( ) 方法

定义和用法:
copyWithin( ) 方法用于从数组的指定位置拷贝元素到数组的另一个指定位置中
示例:

let test = [1,2,3,4]
test.copyWithin(2,0)

输出结果: 1,2,1,2
语法: array.copyWithin(target,start,end)
参数
target 必需,复制到指定目标索引位置
start 可选,元素复制的起始位置
end 可选.停止复制的索引位置(默认为 array.length),如果为负值,表示倒数.

1.3 every()方法

定义和用法
every( )方法用于检测数组所有元素是否都符合指定条件 (通过函数提供)
应用场景: 开关思想(购物车全选框)
举例子: 判断数组中是不是都是正数
every( ) 方法使用指定函数检测数组中的所有元素:
1. 如果数组中检测到有一个元素不满足,则整个表达式返回 false,且剩余的元素不会再进行检测
2. 如果所有元素都满足条件,则返回true
注意: every( ) 不会对空数组进行检测
every( ) 不会改变原始数组

示例:

        let arr = [10,20,50,60,70,80]
       let res = arr.every((item,index)=>{
           if( item >= 0 ){
               return true
           }else{
               return false
           }
       })

输出结果是: true

语法
array.every(function(currentvalue,index,arr),thisvalue)

参数:
function(currentValue,index,arr) 必须.函数,数组中的每个元素都会执行这个函数
函数参数:
currentValue 必须,当前元素的值
index 可选,当前元素的索引值
arr 可选,当前元素属于的数组对象

返回值: 布尔值,如果所有元素都通过检测返回true,否则返回false

1.4 fill() 方法

定义和用法
fill( ) 方法用于将固定值替换数组的元素
示例:

let test = [1,2,3,4]
test.fill(6)

输出结果: 6,6,6,6
语法:
array.fill(value,start,end)
参数:
value 必需,填充的值
start 可选,开始填充位置
end 可选,停止填充位置(默认为 array.length)

返回值
数组

1.5 filter()方法

** 定义和用法**
filter( ) 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素
注意
filter()不会对空数组进行检测
filter() 不会改变原始数组
语法
array.filter(function(currentvalue,index,arr),thisvalue)

示例:

返回数组test中所有元素都大于6的元素
let test = [8,10,12,16]
let arr = test.filter(item => item >= 6)

输出结果: 8,10,12,16
参数
currentValue 必须.当前元素的值
index 可选,当前元素的索引值
arr 可选,当前元素属于的数组对象

返回值: 返回数组,包含了符合条件的所有元素,如果没有符合条件的元素则返回空数组

1.6 find( ) 方法

定义和用法
find() 方法返回通过测试,(函数内判断) 的数组的第一个元素的值
find() 方法为数组中的每个元素都调用一次函数执行:
1.当数组中的元素在测试条件时返回true时,find()返回符合条件的元素,之后的值不会再调用执行函数
2.如果没有符合条件的元素返回 undefined

let arr= [10,18,60,15]
arr.find(tiem => item >= 16)

输出结果: 18

注意
find()对于空数组,函数是不回执行的
find()并没有改变数组的原始值

1.7 findlndex( ) 方法

定义和用法
findindex( ) 方法返回传入一个测试条件(函数) 符合条件的数组第一个元素位置
findIndex ( ) 方法为数组中的每个元素都调用一次函数执行:
1.当数组中的元素在测试条件时返回 true时, findIndex ( )返回符合条件的元素的索引位置,之后的值不会再调用执行函数
2.如果没有符合条件的元素返回 -1
注意: findIndex( ) 对于空数组,函数是不会执行的
findIndex( ) 并没有改变数组的原始值
返回值 返回支付测试条件的第一个数组元素索引,如果没有符合条件的则返回 -1
示例:

        let arr = [
            {name:'张三',age:20},
            {name:'李四',age:25},
            {name:'王五',age:30},
        ]

        let res = arr.findIndex(item=>item.name=='赵四')
        console.log(res)//-1

1.8 forEach( ) 方法

定义和用法
forEach( ) 方法用于调用数组的每个元素,并将元素传递给回调函数
注意 forEach( ) 对于空数组是不会执行回调函数的
返回值 undefined
示例:

   let arr = [20, 61, 80, 95, 100]
        arr.forEach( (item,index) => {
            console.log(item,index)  
        })

输出结果 : 20 0 61 1 80 2 95 3 100 4
forEach作用与场景: 遍历数组 类似于for循环遍历数组
语法特点:
循环执行次数 == 数组长度

1.9 from ( ) 方法

定义和用法
from( ) 方法用于通过拥有 length 属性的对象或可迭代的对象来返回一个数组
如果对象是数组返回true,否则返回false
语法
array.from(object,mapFunction,thisvalue)
参数
object 必需.要转换为数组的对象
mapFunction 可选,数组中每个元素要调用的函数
thisValue 可选,映射函数(mapFunction)中的this对象
返回值 数组对象
示例:

    let myArr = Array.from('test')
    console.log(myArr);

输出结果: [‘t’,‘e’,‘s’,‘t’]
通过字符串创建一个数组

1.2 includes( ) 方法

定义和用法
includes( ) 方法用来判断一个数组是否包含一个指定的值,如果是返回true,否则false
语法
arr.includes(searchElement)
arr.includes(searchElement,fromIdex)
参数
searchElement 必须,需要查找的元素值
fromIndex 可选,从该索引处开始查找searchElement.如果为负值,则按升序从 array.length + fromIndex的索引开始搜索,默认为0
返回值 布尔值,如果找到指定值返回true,否则返回false
示例:

[1, 2, 3].includes(2);     // true
[1, 2, 3].includes(4);     // false
[1, 2, NaN].includes(NaN); // true

1.2.1 indexOf( ) 方法

定义和用法
indexOf( ) 方法可返回数组中某个指定的元素位置
该方法从头到尾检索数组,看是否有符合条件的元素,如果找到,则返回该元素的第一次出现的位置(索引值)
如果在数组中没找到指定元素则返回 -1
语法
array.indexOf(item,start)
参数
item 必须,查找的元素
start 可选的整数参数,规定在数组中开始检索的位置,它的合法取值是0 到 stringObject.length -1 . 如省略该参数,则将从字符串的首字符开始检索
返回值 类型: Number 元素在数组中的位置,如果没有搜索到则返回 -1
示例:

let arr = [1,2,3,4]
let a = arr.indexOf(3)

输出结果: 2

1.2.2 isArray( ) 方法

定义和用法
isArray( ) 方法用于判断一个对象是否为数组
如果对象是数组返回true,否则返回false
语法
Array.isArray(obj)
参数
obj 必需,要判断的对象
返回值 布尔值,如果对象是数组返回true,否则返回false
示例:

    function fn() {
      let arr = [1, 2, 3, 4]
      console.log(Array.isArray(arr))
    }
    fn()

1.2.3 join( ) 方法

定义和用法
join( ) 方法用于把数组中的所有元素转换一个字符串
元素是通过指定的分隔符进行分隔的
语法
array.join(separator)
参数值
separator 可选,指定要使用的分隔符,如果省略该参数,则使用逗号作为分隔符
返回值
类型: String
返回一个字符串,该字符串是通过把arrayObject的每个元素转换为字符串,然后把这些字符串连接起来,在两个元素之间插入 separator 字符串而生成的
示例:

let arr= [1,2,3,4]
let str = arr.join()

输出结果: 1,2,3,4

1.2.4 map( ) 方法

定义和用法
map( ) 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值
map( ) 方法按照原始数组元素顺序依次处理元素
注意
map( ) 不会对空数组进行检测
map( ) 不会改变原始数组
返回值 返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值
示例:

    let num = [4, 9, 16, 25];
    let fn = num.map(item => item * 0.8)
    console.log(fn);

输出结果: 新数组: 3.2 7.2 12.8 20

1.2.5 pop( ) 方法

定义和用法
pop( ) 方法用于删除数组的最后一个元素并返回删除的元素
注意: 此方法改变数组的长度
语法
array.pop( )
返回值 所有类型 返回删除的元素

示例:

let arr= [1,2,3,4]
arr.pop()

输出结果: 1,2,3

1.2.6 push( ) 方法

定义和用法
push( ) 方法 可向数组的末尾添加一个或多个元素,并返回新的长度
新元素将添加在数组的末尾
此方法改变数组的长度
语法
array.push(item1,item2,…)
参数值
item1,item2… 必需,要添加到数组的元素
返回值
类型: Number
数组新长度
示例:

let arr= [1,2,3,4]
arr.push(8)

输出结果:新数组-> 1,2,3,4,8

1.2.7 reduce( ) 方法

定义和用法
reduce( ) 方法接收一个函数作为累加器,数组中的每个值(从左到右) 开始缩减,最终计算为一个值
reduce( ) 可以作为一个高阶函数,用于函数的compose

let arr= [1,2,3,4]
let res = arr.reduce((sum,value) => sum+value,0)

输出结果: 10

1.2.8 reverse( ) 方法

定义和用法
reverse( ) 方法用于颠倒数组中元素的顺序
返回值
颠倒顺序后的数组
示例:

let arr= [1,2,3,4]
arr.reverse()

输出结果: 4,3,2,1

1.2.9 shift( ) 方法

定义和用法
shift( ) 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值
返回值 任何类型 数组原来的第一个元素的值(移除的元素)
示例:

let arr = [1,2,3,4]
arr.shift()

输出结果 2,3,4

1.3 unshift( ) 方法

定义和用法
unshift( ) 方法可向数组的开头添加一个或更多元素,并返回新的长度
注意: 该方法将改变数组的数目
语法
array.unshift(item1,item2…)
参数
可选,向数组起始位置添加一个或者多个元素
返回值
类型描述: Number 数组新长度
示例:

let arr = [1,2,3,4]
arr.unshift(6)

输出结果: [6,1,2,3,4]

1.3.1 slice( ) 方法

定义和用法
slice( ) 方法可从已有的数组中返回选定的元素
slice( ) 方法可提取字符串的某个部分,并以新的字符串返回被提取的部分
语法
array.slice(start,end)
参数
start 可选,规定从何处开始选取,如果该参数为负数,则从数组的倒数第一个元素开始提取
end 可选 规定从何处结束选取,该参数是数组片断结束处的数组下标,如果没有指定该参数,那么切分的数组包含从start到数组结束的所有元素,他如果该参数为负数,则它表示的数组中的倒数第几个元素结束抽取
示例:

let arr = [1,2,3,4,5]
arr.slice(1,3)

输出结果: 2,3

1.3.2 splice( ) 方法

定义和用法
splice( ) 方法用于添加或删除数组中的元素
注意: 这个方法会改变原始数组
语法
array.splice(index,howmany,item1,item2…)
参数
index 必需,规定从何处添加删除元素
howmany 可选,固定应该删除多少元素,必需是数字,但可以是"0",如果未规定此参数,则删除从index开始到原数组结尾的所有元素
item1,…itemX 可选,要添加到数组的新元素
返回值
Array 如果从arrayObject中删除了元素,则返回的是含有被删除的元素的数组
示例:

let arr = [1,2,3,4]
arr.splice(1,1)

输出结果: [1.3.4]

let arr = [1,2,3,4]
arr.splice(1,0)

输出结果 [1]

1.3.3 some( ) 方法

定义和用法
some( ) 方法用于检测数组中的元素是否满足指定条件(函数提供)
some( ) 方法会依次执行数组的每个元素:
1.如果有一个元素满足条件,则表达式返回true,剩余的元素不会再执行检测
2.如果没有满足条件的元素,则返回false
返回值
布尔值,如果数组中元素满足条件返回true,否则返回false

示例:

//判断数组中有没有负数
let arr = [20, 61, -80, 95, 100]
let res = arr.some(item => item < 0)
console.log(res)

输出结果: true

1.3.4 toString( ) 方法

定义和用法
toString( ) 方法可把数组转换为字符串,并返回结果
数组中的元素之间用逗号分隔

场景:将数组转换为字符串
示例:

let arr= [1,2,3,4]
arr.toString()

输出结果:1,2,3,4

1.3.5 sort( ) 方法

定义和用法
sort( ) 方法 用于对数组的元素进行排序
排序顺序可以是字母或数字,并按升序或降序
默认排序顺序为按字母升序
参数
sortfunction 可选,规定排序顺序,必须是函数
返回值
Array 对数组的引用,请注意,数组在原数组上进行排序,不生成副本
示例:

    let numArr = [20, 55, 60, 80, 10, 90]
    numArr.sort(function (a, b) {
      // return a - b //从小到大
      return b - a //从大到小
    })

输出结果: 90,80,60,55,20,10

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值