javaScript_数组

目录

一、改变原数组的方法

1. push()

2. pop()

3. unshift()

4. shift()

5. reverse()

6. sort()

7. splice()

二、不改变原数组的方法

1. concat()

2. join()

3. slice()

4. indexOf()

5. lastIndexOf() 

三、ES6新增的数组的方法

1.find()

2.forEach()

3.filter()

4.map()

5.every()

6.some()

7.reduce()

8.fill()


一、改变原数组的方法

1. push()

末尾添加一个或多个数值,并返回新的长度:array.push(1)  /  array.push(1,2,3) / array.push(...[一个数组])。

2. pop()

删除末尾数据,并返回删除的元素:array.pop()。

3. unshift()

头部添加数据,和push()使用方法一样。

4. shift()

头部删除数据,和pop()使用方法一样。

5. reverse()

反转数组:array.reverse()。

6. sort()

数组排序

        ①sort((a,b)=>a-b),正序小->大。

        ②sort((a,b)=>b-a),倒序大->小。

7. splice()

对数组进行删除、截取、替换、添加:

        ①一个参数splice(index), 从index的位置开始,删除之后的所有元素(包括第index个),若 index < 0 , 则删除最后-index个元素。

        ②两个参数splice(index,howmany) ,删除从index位置开始的数,howmany为删除的个数,若 howmany 小于等于 0,则不删除。

        ③三个参数splice(index ,howmany , item1, …, itemX )

        Ⅰ.index >0 时
        (1. howmany 为 0 时 不删除只添加 —— 在index位置前添加item1, …, itemX的数
        (2. howmany > 0 删除且添加 —— 删除从index位置开始的数,howmany为删除的个数,并且在index位置前添加item1, …, itemX的数


        Ⅱ.index <0 时

        最后一个数为 -1 依次倒数第二个数为-2
        (1. howmany 为 0 时 不删除只添加 —— 在-index位置前添加item1, …, itemX的数
        (2. howmany > 0 删除且添加 —— 删除从-index位置开始的数,howmany为删除的个数,并且在-index位置前(相当于往后 -2前是 -1)添加item1, …, itemX的数

二、不改变原数组的方法

1. concat()

合并数组

        ①let arrayAll = array1.concat(array2);

        ②let arrayAll = array1.concat(array2,"hello",1,0);

        ③let arrayAll = array1.concat("hello",1,0);

2. join()

数组转字符串,let array =[6,"join","o"]

        ①let string= array .join(), string为"6joino"

        ②let string= array .join(','), string为"6,join,o"

3. slice()

截取数组,let array=[1,2,3,4,5]

        ①array.slice(begin, end),begin开始位置的索引(从0开始),end结束位置的索引(但该位置的元素本身不包括在内)。begin起始索引和end结束索引都可以为负数,表示从数组末尾开始计数。结束索引可以大于数组的长度,slice() 会在数组的末尾截断。array.slice(1, 4)为[2,3,4]。

        ②复制整个数组:let arr = array.slice()。

4. indexOf()

从左往右检查数组中是否存在某个值,可返回某个指定的字符串值在字符串中首次出现的位置,如果没有找到返回-1,对大小写敏感。array.indexOf(item,start),item 必须,查找的元素
start 可选。

5. lastIndexOf() 

从右往左检查数组中是否存在某个值,返回第一次出现的位置。

三、ES6新增的数组的方法

以下介绍的数组方法,find()、forEach()、filter()、map()、every()、some()、都必传回调函数这里对函数参数进行一个统一说明,用find()为例:

        array.find(function(currentValue, index, arr),thisValue)

        callback也就是unction(currentValue, index, arr):必须。为数组中每个元素执行的函数,该函数接受三个参数:
                1)currentValue:必须。数组中正在处理的当前元素。
                2)index:可选。当前元素的索引值。
                3)arr:可选。当前元素所在的数组对象。
       

         thisValue:可选。传递给函数的值一般用 “this” 值。如果这个参数为空, “undefined” 会传递给 “this” 值

1.find()

获取数组中满足条件的第一个数值,如果没有符合条件的元素,则返回undefined

        ①使用方法,例如查找大于一的数字:
        let arr1 = [1, 2, 3, 4, 5];
        let num = arr1.find(item => item > 1);
        console.log(num)  //输出的结果是2

2.forEach()

循环遍历数组,按升序为数组中含有效值的每一项执行一次callback函数,那些已删除或者未初始化的项将被跳过(例如在稀疏数组上)。没有办法中止或者跳出forEach()循环,除了抛出一个异常。

3.filter()

过滤数组,筛选出符合要求的对象。这个方法不会直接改变原数组,它会创建一个新数组,其中包含通过给定函数实现的测试的所有元素。如果需要修改原数组,可以使用 filter 方法后跟 slice() 方法或者使用 forEach 循环等。

        ①使用 slice() 获取新数组:numbers = numbers.filter(number => number % 2 === 0).slice();

4.map()

映射数组。这个方法会创建一个新数组,这个新数组的元素是回调函数执行的结果。map() 方法对数组中的每个元素执行一次提供的函数,不改变原数组。

        ①const squares = numbers.map(num => num * num);

5.every()

判断数组中所有的数值是否都满足设置的条件, 它也不会改变原始数组。所有元素全都满足筛选条件返回true,否则false。

6.some()

判断数组中是否有满足条件的,它也不会改变原始数组。some()方法会依次执行数组中的每个元素,直到找到一个使得条件成立的元素。如果找到了这样的元素 ,some() 方法会立即返回true,表示数组中至少有一个元素满足条件。否则,如果没有任何元素满足条件,则返回false。

7.reduce()

对数组中的每个元素执行一个提供的reducer函数(升序执行),将其结果汇总为单个输出值。

arr.reduce(callback(accumulator, currentValue[, index[, array]])[, initialValue])

参数:

callback:执行数组中的每个值的函数,包含四个参数:

accumulator:累加器,即上一次调用回调返回的值,默认为数组中的第一个值

currentValue:数组中当前被处理的元素。

index:可选,当前元素在数组中的索引。

array:可选,调用reduce的数组。

initialValue:作为第一次调用callback的第一个参数。

使用 reduce 计算数组中所有数字的总和:

const numbers = [1, 2, 3, 4, 5];

const sum = numbers.reduce((accumulator, currentValue) => accumulator + currentValue, 0);

console.log(sum); // 输出:15

8.fill()

用于将一个固定值替换数组的元素。
array.fill(value, start, end)

value必需。填充的值。
start可选。开始填充位置。
end可选。停止填充位置 (默认为 array.length)

填充 "Runoob" 到数组的最后两个元素:

var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.fill("Runoob", 2, 4);

输出结果:

Banana,Orange,Runoob,Runoob

  • 29
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值