如何在JavaScript中使用数组方法:Mutator方法[通俗易懂]

如何在JavaScript中使用数组方法:Mutator方法[通俗易懂]JavaScript中的数组由元素列表组成。JavaScript有许多有用的内置方法来处理数组。修改原始数组的方法称为mutator方法,返回新值或表示的方法称为accessor方法。在…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

如何在JavaScript中使用数组方法:Mutator方法[通俗易懂]

JavaScript中的数组由元素列表组成。JavaScript有许多有用的内置方法来处理数组。修改原始数组的方法称为mutator方法,返回新值或表示的方法称为accessor方法。在本教程中,我们将重点介绍mutator方法。

数组与字符串相似,它们都由可通过索引号访问的一系列元素组成。但是,请务必记住,字符串是不可变的数据类型,这意味着它们无法更改。

另一方面,数组是可变的,这意味着许多数组方法将影响原始数组,而不是数组的副本。

本教程将介绍添加和删除元素,反转,替换以及修改数组中元素的过程。

注意:数组方法正确地写为array.prototype.method(),因为array.prototype引用Array对象本身一样。为了简单起见,我们只需将名称列为method()。

isArray()

在介绍mutator方法之前,让我们先看看isArray()方法,以测试对象是否是数组。这是一个布尔方法,如果变量的值等于数组,则返回true。如果对象不是数组,则此方法返回false。

let fish = [ "piranha", "barracuda", "koi", "eel" ];
// Test if fish variable is an arrayArray.isArray(fish);

输出:

true

isArray()方法很有用,因为通常用于测试的typeof运算符在与数组一起使用时返回object,有时需要知道对象和Array对象之间的区别。

注意,isArray()的写法与大多数数组方法不同,数组变量作为方法的参数提供。

现在,我们知道了如何检查以确保对象是一个数组,接下来介绍mutator方法。

pop()

我们将看到的第一个mutator方法是pop()方法,该方法删除数组末尾的最后一个元素。

我们先从fish数组开始。

let fish = [ "piranha", "barracuda", "koi", "eel" ];

为了删除最后一项,让我们初始化pop()方法。在本例中,它将是字符串文字“eel”。

// Use pop method to remove an item from the end of an arrayfish.pop();

我们将调用数组以确保返回的数组没有最后一项:

fish;

输出:

[ 'piranha', 'barracuda', 'koi' ]

我们已经成功地从fish数组中移除“eel”。pop()方法不接受其他参数。

shift()

另一个mutator方法,shift()方法从数组的开头删除第一个元素。

let fish = [ "piranha", "barracuda", "koi", "eel" ];

我们将使用shift()从索引0中删除”piranha”,并将所有其他元素下移一个索引号。

// Use shift method to remove an item from the beginning of an arrayfish.shift();
fish;

输出:

[ 'barracuda', 'koi', 'eel' ]

在这个例子中,”piranha”被删除了,每个项目都向下移动了一个索引号。因此,通常最好尽可能使用pop()方法,因为其他数组元素将保持它们的索引位置。

push()

mutator方法push()向数组的末尾添加一个或多个新元素。

let fish = [ "piranha", "barracuda", "koi", "eel" ];

为了在末尾添加一个项,我们将新元素作为函数的参数写入。

// Use push method to add an item to the end of an arrayfish.push("swordfish");
fish;

输出:

[ 'piranha', 'barracuda', 'koi', 'eel', 'swordfish' ]

也可以向数组中添加多个新值。例如,fish.push(“swordfish”, “dragonfish”) 将向索引4和5添加项。

unshift()

mutator数组方法unshift()将一个或多个新元素添加到数组的开头。

let fish = [ "piranha", "barracuda", "koi", "eel" ];
// Use unshift method to add an item to the beginning of an arrayfish.unshift("shark");fish;

输出:

[ 'shark', 'piranha', 'barracuda', 'koi', 'eel' ]

在上面的示例中,将“shark”被添加到索引位置0,将所有其他数组元素向后移动一个。与shift()一样,可以一次向数组中添加多个逗号分隔的项。

pop()和push()影响数组的结尾,而shift()和unshift()影响数组的开始。记住这一点的一个简单方法是,记住shift()和unshift()将更改返回数组的所有索引号

splice()

splice()方法可以从数组中的任何位置添加或删除项目。mutator方法splice()可以添加或删除,也可以同时添加和删除。

splice()接受三个参数——起始索引号、要删除的项数和要添加的项数(可选)。

splice(index number, number of items to remove, items to add)

splice(0, 0, “new”) 将把字符串“new”添加到数组的开头,而不删除任何内容。

让我们看下面的几个示例,了解如何splice()添加和删除数组中的项目。

使用splice()添加

如果我们将第二个参数(要删除的项目)设置为0,splice()则会删除零个项目。这样,我们可以选择仅添加从任何索引号开始的项目,从而使splice()比push()或unshift()更强大,后者只向数组的末尾或开头添加项。

let fish = [ "piranha", "barracuda", "koi", "eel" ];
// Splice a new item number into index position 1fish.splice(1, 0, "manta ray");
fish;

输出:

[ 'piranha', 'manta ray', 'barracuda', 'koi', 'eel' ]

新字符串“manta ray”已添加到数组中,从索引1开始。

使用splice()删除

如果我们将第三个参数(要添加的项)留空,我们可以简单地从数组中的任意点删除一个项。

let fish = [ "piranha", "barracuda", "koi", "eel" ];
// Remove two items, starting at index position 1fish.splice(1, 2);
fish;

输出:

[ 'piranha', 'eel' ]

我们从数组中删除了两项,从索引1,“barracuda”开始。如果删除第二个参数,则删除数组末尾的所有项。

使用splice()添加和删除

一次使用所有参数,我们就可以同时在数组中添加和删除项目。

为了演示这一点,让我们删除与上面相同的项,并在它们的位置上添加一个新项。

let fish = [ "piranha", "barracuda", "koi", "eel" ];
// Remove two items and add onefish.splice(1, 2, "manta ray");
fish;

输出:

[ 'piranha', 'manta ray', 'eel' ]

splice()是修改数组任何部分的强大方法。注意,不要将splice()与slice()混淆,后者是一个访问器数组,它将复制数组的一部分。

reverse()

reverse()方法反转数组中元素的顺序。

let fish = [ "piranha", "barracuda", "koi", "eel" ];

使用reverse(),最后一个元素将是第一个元素,第一个元素将是最后一个元素。

// Reverse the fish arrayfish.reverse();
fish;

输出:

[ 'eel', 'koi', 'barracuda', 'piranha' ]

reverse()数组方法没有参数。

fill()

fill()方法用静态值替换数组中的所有元素。

let fish = [ "piranha", "barracuda", "koi", "eel" ];

在fish数组中,我们有四个项目。我们应用fill()。

// Replace all values in the array with "shark"fish.fill("shark");
fish;

输出:

[ 'shark', 'shark', 'shark', 'shark' ]

数组中的所有四项都被替换为相同的值“shark”。fill()还接受起点和终点的可选参数。

fish.fill("shark", 1) // > [ 'piranha', 'shark', 'shark', 'shark' ]fish.fill("shark", 1, 3); // > [ 'piranha', 'shark', 'shark', 'eel' ]

使用fill()我们可以用静态值替换数组中的一个或多个元素。

sort()

sort()方法根据元素中的第一个字符对数组中的元素进行排序。在第一个字符相同的情况下,它将继续向下并比较第二个字符,以此类推。

默认情况下,sort()将按字母顺序排列的字符串数组全部为大写或小写。

let fish = [ "piranha", "barracuda", "koi", "eel" ];
// Sort items in arrayfish.sort();
fish;

输出:

[ 'barracuda', 'eel', 'koi', 'piranha' ]

由于sort()基于第一个unicode字符,因此它将对大写的项目进行排序,然后再对小写进行排序。

让我们修改原始数组,以使我们的字符串之一以大写字母开头。

let fish = [ "piranha", "barracuda", "Koi", "eel" ];
fish.sort();
fish;

输出:

[ 'Koi', 'barracuda', 'eel', 'piranha' ]

数字位于大写和小写字符之前。

我们可以再次修改数组以在一个字符串项中包含一个数字。

let fish = [ "piranha", "barracuda", "Koi", "1 eel" ];
fish.sort();

输出:

[ '1 eel', 'Koi', 'barracuda', 'piranha' ]

sort()默认情况下不会按大小对数字数组进行排序。相反,它将只检查数字中的第一个字符。

let numbers = [ 42, 23, 16, 15, 4, 8 ];
numbers.sort();

输出:

[ 15, 16, 23, 4, 42, 8 ]

为了正确地对数字进行排序,您可以创建一个比较函数作为参数。

// Function to sort numbers by sizeconst sortNumerically = (a, b) => {  return a - b;}
numbers.sort(sortNumerically);

输出:

[ 4, 8, 15, 16, 23, 42 ]

sortNumerically比较函数允许我们按照预期进行排序。sort()将把更改应用到原始数组。

结论

在本教程中,我们回顾了javascript中的主要mutator数组方法。mutator方法修改它们使用的原始数组,而不是创建类似于copy的访问器方法。我们学习了如何在数组的开头或结尾添加和删除元素,以及排序、反转和替换数组项的值。

本文完~

如何在JavaScript中使用数组方法:Mutator方法[通俗易懂]

如何在JavaScript中使用数组方法:Mutator方法[通俗易懂]

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/194578.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Effective C++ Item 37 绝不又一次定义继承而来的缺省參数值「建议收藏」

    Effective C++ Item 37 绝不又一次定义继承而来的缺省參数值

  • Carson带你学Android:最全面的Webview使用详解

    Carson带你学Android:最全面的Webview使用详解前言现在很多App里都内置了Web网页(HypridApp),比如说很多电商平台,淘宝、京东、聚划算等等,如下图那么这种该如何实现呢?其实这是Android里一个叫WebView的组件实现的。今天我将全面介绍WebView的常用用法。目录1.简介WebView是一个基于webkit引擎、展现web页面的控件。Android的Webview在低版本和高版本采用了不同的webkit版本内

  • PyCharm激活码永久有效PyCharm2021.1.3激活码教程-持续更新,一步到位

    PyCharm激活码永久有效PyCharm2021.1.3激活码教程-持续更新,一步到位PyCharm激活码永久有效2021.1.3激活码教程-Windows版永久激活-持续更新,Idea激活码2021.1.3成功激活

  • ubuntu16.04 svn配置「建议收藏」

    ubuntu16.04 svn配置「建议收藏」虽然目前最流行的项目托管平台是github,其分布式的存储思想非常先进,对于项目的敏捷开发也非常有好处。但缺点在于操作略显复杂,上手需要一定成本。而svn相比git操作简单许多,上手几乎无难度,适用于项目的管理。虽然目前有很多svn的使用方法,但对其使用却描述不够具体或者不够连续,接下来详细写出本人在ubuntu16.04下配置svn并上传至taocode托管平台的步骤:首先安装

  • android集成chrome内核_java实现ie内核

    android集成chrome内核_java实现ie内核参照开源代码jcefhttps://bitbucket.org/chromiumembedded/java-cef实现效果支持开发者工具项目源代码,目前只编译了32位http://pan.baidu.com/s/1skcXKlf…

    2022年10月24日
  • 对自己感悟最深的话_感悟句子致自己

    对自己感悟最深的话_感悟句子致自己人的一生中只有七次机会,平均每七年拥有一次,大概在25岁到75岁,第一次通常抓不到,因为太年轻,最后一次也抓不到,因为太老。中途还有2次因为自己错过,所以抓不到。所以对于人来说人真正才会有三次机会,人的一生真正只有三次,只有称为能改变自己命运的机会才可以称作是机会。其实人生的机会很快就会过去。能真正抓住机会的人,首先靠的是自己个人的能力;其次靠的是环境。一个人如果素质不好,行为不好,那么即使你再…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号