JavaScript数组(Array)方法整理(下篇)

18 篇文章 1 订阅
4 篇文章 0 订阅

1. reduceRight()

方法的功能和reduce()功能是一样的,不同的是reduceRight() 从数组的末尾向前将数组中的数组项做累加。

注意:reduce()对于空数组时不会执行回调函数的。

// array.reduceRight(function(total, currentValue, currentIndex, arr), initialValue)

/*
    function(total,currentValue, index,arr)	必需。用于执行每个数组元素的函数。
          
            total	        必需。初始值, 或者计算结束后的返回值。
            currentValue	必需。当前元素
            currentIndex	可选。当前元素的索引
            arr	            可选。当前元素所属的数组对象。

    initialValue	可选。传递给函数的初始值
*/

let numbers = [2, 45, 67, 100];

//   从右到左 减去每个数组元素  初始值为 300
let result = numbers.reduceRight(function (total, value, index, arr) {
    return total - value; // 从右向左 逐个减去每个元素
}, 300);

console.log(result); // 86

2. revrese()

方法用于颠倒数组中的元素顺序。

// array.reverse() 
/*
    返回值:Array。 数组颠倒之后的新数组
*/
let nums = [1, 2, 3, 4, 5];
// 颠倒数组元素顺序
let newNums = nums.reverse();

console.log(newNums); //[5, 4, 3, 2, 1]

3. shift()

方法用于把数组的第一个元素从其中删除,并返回第一个元素的值。

注意:此方法改变数组的长度!

提示:移除数组末尾的元素可以使用pop()方法。

// array.shift()
/*
    返回值:任何类型(*)。数组原来的第一个元素的值(移除的元素)

    *:数组元素可以是一个字符串,数字,数组,布尔,或者其他对象类型。
*/

let colors = ["red", "blue", "pink", "orange"];

// 移除数组中第一个元素
let rem = colors.shift();

console.log(rem); // red

4.slice()

方法可从已有的数组中返回选定的元素数组。

slice()方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。

注意:slice() 方法不会改变原始数组。

// array.slice(start, end)
/*
    start	可选。规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。如果该参数为负数,则表示从原数组中的倒数第几个元素开始提取,slice(-2) 表示提取原数组中的倒数第二个元素到最后一个元素(包含最后一个元素)。
    end	可选。规定从何处结束选取。该参数是数组片断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。如果该参数为负数, 则它表示在原数组中的倒数第几个元素结束抽取。 slice(-2,-1) 表示抽取了原数组中的倒数第二个元素到最后一个元素(不包含最后一个元素,也就是只有倒数第二个元素)。

返回值:Array。返回一个新的数组,包含从 start 到 end (不包括该元素)的 arrayObject 中的元素。
*/
    
let colors = ["red", "blue", "pink", "orange", "skyblue"];

colors.slice(2, 3); // ['orange'] 包含索引为2的元素 不包含索引为3的元素

colors.slice(2); // ["orange", "skyblue"] 截取数组第三个元素 及后面的所有元素

colors.slice(-3, -1); //['blue', 'pink']  截取倒数第三个元素(包含)到倒数第一个元素(不包含)的所有元素


//   slice() 还可以操作字符串

let str = "Huanying,laidao,wodeCSDN.";

//   从第五个(不包含)字符开始 截取之后的全部
console.log(str.slice(5)); // ing,laidao,wodeCSDN.

//   截取第四(不包含)到第八个(包含)字符
console.log(str.slice(4, 8)); // ying

5.some()

方法用于检测数组中的元素是否满足指定条件(函数提供)。

方法会一次执行数组的每个元素:

  • 如果有一个元素满足条件,则表达式返回true,剩余的元素不会再执行检测。
  • 如果没有满足条件的元素,则返回false。

注意:some() 不会对空数组进行检测。

注意:some() 不会改变原始数组。

// array.some(function(currentValue,index,arr),thisValue)
/*
    function(currentValue, index,arr)	必须。函数,数组中的每个元素都会执行这个函数
    
        currentValue	必须。当前元素的值
        index	        可选。当前元素的索引值
        arr	            可选。当前元素属于的数组对象
    thisValue	可选。对象作为该执行回调时使用,传递给函数,用作 "this" 的值。
                如果省略了 thisValue ,"this" 的值为 "undefined"

    返回值:布尔值。如果数组中有元素满足条件返回true,否则返回false
*/
      let ages = [5, 23, 45, 6, 7, 82];

      // 检测ages数组中是否有大于60的元素
      let res1 = ages.some(function (value, index, arr) {
        return value > 60;
      });
      console.log(res1); // true

      //   检测ages数组中是否有小于1的元素
      let res2 = ages.some(function (value, index, arr) {
        return value < 1;
      });
      console.log(res2); //false

6.sort()

方法用于对数组的元素进行排序。

排序顺序可以是字母或数组,并按升序或者降序排序。

默认排序顺序Wie按字母升序。

注意:当数字时按字母顺序排列时“40”将排在“5”前面。

使用数组排序,你必须通过一个函数作为参数来调用。

函数指定数字时按照升序还是降序排列。

注意:这种方法会改变原始数组!

// array.sort(sortfunction)
/*
    sortfunction	可选。规定排序顺序。必须是函数。

    返回值:Array	对数组的引用。请注意,数组在原数组上进行排序,不生成副本。
*/

    let ages = [5, 23, 45, 6, 7, 82];

    //   对ages中的元素进行排序
    // 升序
    ages.sort(function (a, b) {
        return a - b;
    });

    console.log(ages); // [5, 6, 7, 23, 45, 82]  改变了原始数组

    // 降序
    ages.sort(function (a, b) {
        return b - a;
    });

    console.log(ages); // [82, 45, 23, 7, 6, 5]

7. splice()

方法用于添加或删除数组中的元素。

注意:这种方法会改变原始数组。

// array.splice(index,howmany,item1,.....,itemX)

/*
    index	必需。规定从何处添加/删除元素。该参数是开始插入和(或)删除的数组元素的下标,必须是数字。
    howmany	可选。规定应该删除多少元素。必须是数字,但可以是 "0"。如果未规定此参数,则删除从 index 开始到原数组结尾的所有元素。
    item1, ..., itemX	可选。要添加到数组的新元素

    返回值: Array。如果从 arrayObject 中删除了元素,则返回的是含有被删除的元素的数组。
*/

    let colors = ["red", "blue", "pink", "orange", "skyblue"];

    //   移除数组第三个元素(索引为2的元素),并在数组第三个位置添加新元素
    colors.splice(2, 1, "newColor1", "nweColor2"); 
    console.log(colors); //['blue', 'pink', 'newColor1', 'nweColor2', 'skyblue'] 返回了新的数组

    //   从所以1位置开始,删除之后的2个元素
    colors.splice(1, 2);
    console.log(colors); //['blue', 'skyblue'] 返回了删除的两个元素

8. toString()

方法可以把数组转换为字符串,并返回结果。

注意: 数组中的元素之间用逗号分隔。

// array.toString()
/*
    返回值: String。	数组的所有值用逗号隔开
*/

    let colors = ["red", "blue", "pink", "orange", "skyblue"];

    //  将colors数组 转化为字符串
    let colStr = colors.toString();

    console.log(colStr);// red,blue,pink,orange,skyblue

9.unshift()

方法可想数组的开发添加一个或更多元素,并返回新的长度。

注意:该方法将改变数组的数组。

提示:将新项添加到数组末尾,请求使用push()方法。

// array.unshift(item1,item2, ..., itemX)
/*
    item1,item2, ..., itemX	可选。向数组起始位置添加一个或者多个元素。

    返回值:   Type 描述 Number 数组新长度
*/

    let colors = ["blue", "pink", "orange", "skyblue"];

    colors.unshift("newColor");

    console.log(colors); //['newColor', 'blue', 'pink', 'orange', 'skyblue']

10. valueOf()

方法返回Array对象的原始值。

该原始值由Array对象派生的所有对象继承。

valueOf() 方法通常用于JavaScript在后台自动调用,并不显式地出现在代码中。

注意:valueOf() 方法不会改变数组。

// array.valueOf()
/*
    返回值:Array	valueOf() 返回数组值
*/

// valueOf()的返回值和数组本身一样

console.log(colors.valueOf());//['newColor', 'blue', 'pink', 'orange', 'skyblue']

 注:出于对JavaScript重新学习,我整理了一下JavaScript的数组方法,也是为了巩固学习所得,文章参考《菜鸟教程》整理,内容略显浅薄,如有不当之处,欢迎指正。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

听北风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值