javascript-MDN学习笔记-Array部分

2024-06-04 04:58

本文主要是介绍javascript-MDN学习笔记-Array部分,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


创建一个数组

var fruits = ["Apple", "Banana"];console.log(fruits.length);
// 2

通过索引访问数组元素

var first = fruits[0];
// Applevar last = fruits[fruits.length - 1];
// Banana

遍历一个数组

fruits.forEach(function (item, index, array) {console.log(item, index);
});
// Apple 0
// Banana 1

添加元素到数组的末尾

var newLength = fruits.push("Orange");
// ["Apple", "Banana", "Orange"]

删除数组末尾的元素

var last = fruits.pop(); // remove Orange (from the end)
// ["Apple", "Banana"];

删除数组最前面(头部)的元素

var first = fruits.shift(); // remove Apple from the front
// ["Banana"];

添加到数组的前面(头部)

var newLength = fruits.unshift("Strawberry") // add to the front
// ["Strawberry", "Banana"];

添加到数组的后边 (尾部)

fruits.push("Mango");
// ["Strawberry", "Banana", "Mango"]

找到某个元素在数组中的索引

var pos = fruits.indexOf("Banana");
// 1

通过索引删除某个元素

var removedItem = fruits.splice(pos, 1); // this is how to remove an item
// ["Strawberry", "Mango"]

复制一个数组

var shallowCopy = fruits.slice(); // this is how to make a copy
// ["Strawberry", "Mango"]
----------------------------------------------------------------------------------------------------------------------------------------

var years = [1950, 1960, 1970, 1980, 1990, 2000, 2010];
years['2'] 可以代替 years[2],不过这不是必需的。

在 years[2] 中,2会被Javascript 引擎自动调用 toString 转换成一个 string 类型的变量。

正因为如此,'2' 和 '02' 在years 对象中将会指向不同的位置。但是2和02是一样的。

console.log(years['2'] != years['02']);返回true
console.log(years[2]==years[02]);返回true

补充:

1、JavaScript 中数字开头的属性不能跟在点号后面
renderer['3d'].setTexture(model, 'character.png');

2、想要使用保留字作为对象的属性名称的,只能通过以单引号包裹其字符串的形式访问

var promise = {'var'  : 'text','array': [1, 2, 3, 4]
};

----------------------------------------------------------------------------------------------------------------------------------------

Mutator 方法

下面的这些方法会改变调用它们的对象自身的值:(9个)

Array.prototype.copyWithin() 
在数组内部,将一段元素序列拷贝到另一段元素序列上,覆盖原有的值。
Array.prototype.fill() 
将数组中指定区间的所有元素的值,都替换成某个固定的值。
Array.prototype.pop()
删除数组的最后一个元素,并 返回这个元素。
Array.prototype.push()
在数组的末尾增加一个或多个元素,并 返回数组的新长度。
Array.prototype.reverse()
颠倒数组中元素的排列顺序,即原先的第一个变为最后一个,原先的最后一个变为第一个。
Array.prototype.shift()
删除数组的第一个元素,并 返回这个元素。
Array.prototype.sort()
对数组元素进行排序,并 返回当前数组。
Array.prototype.splice():三个参数,第一个指定起始位置,第二个指定删除个数(0即不删除),第三个参数既要添加的数组
在任意的位置给数组添加或删除任意个元素。
Array.prototype.unshift()
在数组的开头增加一个或多个元素,并 返回数组的新长度。
Accessor 方法(9个)

下面的这些方法绝对不会改变调用它们的对象的值,只会返回一个新的数组或者返回一个其它的期望值。

Array.prototype.concat()
返回一个由当前数组和其它若干个数组或者若干个非数组值组合而成的新数组。
Array.prototype.includes()  
判断当前数组是否包含某指定的值,如果是返回  true,否则返回  false
Array.prototype.join()
连接所有数组元素组成一个字符串。
Array.prototype.slice()
抽取当前数组中的一段元素组合成一个新数组。
Array.prototype.toSource() 
返回一个表示当前数组字面量的字符串。遮蔽了原型链上的  Object.prototype.toSource() 方法。
Array.prototype.toString()
返回一个由所有数组元素组合而成的字符串。遮蔽了原型链上的  Object.prototype.toString()方法。
Array.prototype.toLocaleString()
返回一个由所有数组元素组合而成的本地化后的字符串。遮蔽了原型链上的  Object.prototype.toLocaleString() 方法。
Array.prototype.indexOf()
返回数组中第一个与指定值相等的元素的索引,如果找不到这样的元素,则返回 -1。
Array.prototype.lastIndexOf()
返回数组中最后一个(从右边数第一个)与指定值相等的元素的索引,如果找不到这样的元素,则返回 -1。

Iteration 方法

在下面的众多遍历方法中,有很多方法都需要指定一个回调函数作为参数。在回调函数执行之前,数组的长度会被缓存在某个地方,所以,如果你在回调函数中为当前数组添加了新的元素,那么那些新添加的元素是不会被遍历到的。此外,如果在回调函数中对当前数组进行了其它修改,比如改变某个元素的值或者删掉某个元素,那么随后的遍历操作可能会受到未预期的影响。总之,不要尝试在遍历过程中对原数组进行任何修改,虽然规范对这样的操作进行了详细的定义,但为了可读性和可维护性,请不要这样做。

Array.prototype.forEach():返回undefined
为数组中的每个元素执行一次回调函数。
Array.prototype.entries() 
返回一个数组迭代器对象,该迭代器会包含所有数组元素的键值对。
Array.prototype.every()
如果数组中的每个元素都满足测试函数,则 返回 true,否则返回 false。
Array.prototype.some()
如果数组中至少有一个元素满足测试函数,则返回 true,否则返回 false。
Array.prototype.filter()
将所有在过滤函数中 返回 true 的数组元素放进一个新数组中并返回。
Array.prototype.find() 
找到第一个满足测试函数的元素并返回那个元素的值,如果找不到,则返回  undefined
Array.prototype.findIndex() 
找到第一个满足测试函数的元素并返回那个元素的索引,如果找不到,则返回  -1
Array.prototype.keys() 
返回一个数组迭代器对象,该迭代器会包含所有数组元素的键。
Array.prototype.map(): 注意,如果此数组的元素不满足回调函数,则新函数此位置为undefined!!!!
返回一个由回调函数的返回值组成的新数组。
Array.prototype.reduce()
从左到右为每个数组元素执行一次回调函数,并把上次回调函数的返回值放在一个暂存器中传给下次回调函数,并返回最后一次回调函数的返回值。
Array.prototype.reduceRight()
从右到左为每个数组元素执行一次回调函数,并把上次回调函数的返回值放在一个暂存器中传给下次回调函数,并返回最后一次回调函数的返回值。
Array.prototype.values() 
返回一个数组迭代器对象,该迭代器会包含所有数组元素的值。
Array.prototype[@@iterator]() 
和上面的  values() 方法是同一个函数。

----------------------------------------------------------------------------------------------------------------------------------------

Array.prototype

所有的数组实例都继承于 Array.prototype
Array.prototype 本身也是个数组。

属性

Array.prototype.constructor
所有的数组实例都继承了这个属性,它的值就是 Array,表明了所有的数组都是由 Array 构造出来的。
Array.prototype.length
上面说了,因为 Array.prototype 也是个数组,所以它也有 length 属性,这个值为 0,因为它是个空数组。

Array.length

你可以通过减小  length 属性的值来截短一个数组,但不能通过增大 length 属性的值来延长这个数组













这篇关于javascript-MDN学习笔记-Array部分的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1029121

相关文章

Java实现字节字符转bcd编码

《Java实现字节字符转bcd编码》BCD是一种将十进制数字编码为二进制的表示方式,常用于数字显示和存储,本文将介绍如何在Java中实现字节字符转BCD码的过程,需要的小伙伴可以了解下... 目录前言BCD码是什么Java实现字节转bcd编码方法补充总结前言BCD码(Binary-Coded Decima

SpringBoot全局域名替换的实现

《SpringBoot全局域名替换的实现》本文主要介绍了SpringBoot全局域名替换的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录 项目结构⚙️ 配置文件application.yml️ 配置类AppProperties.Ja

Java使用Javassist动态生成HelloWorld类

《Java使用Javassist动态生成HelloWorld类》Javassist是一个非常强大的字节码操作和定义库,它允许开发者在运行时创建新的类或者修改现有的类,本文将简单介绍如何使用Javass... 目录1. Javassist简介2. 环境准备3. 动态生成HelloWorld类3.1 创建CtC

JavaScript中的高级调试方法全攻略指南

《JavaScript中的高级调试方法全攻略指南》什么是高级JavaScript调试技巧,它比console.log有何优势,如何使用断点调试定位问题,通过本文,我们将深入解答这些问题,带您从理论到实... 目录观点与案例结合观点1观点2观点3观点4观点5高级调试技巧详解实战案例断点调试:定位变量错误性能分

Java实现将HTML文件与字符串转换为图片

《Java实现将HTML文件与字符串转换为图片》在Java开发中,我们经常会遇到将HTML内容转换为图片的需求,本文小编就来和大家详细讲讲如何使用FreeSpire.DocforJava库来实现这一功... 目录前言核心实现:html 转图片完整代码场景 1:转换本地 HTML 文件为图片场景 2:转换 H

Java使用jar命令配置服务器端口的完整指南

《Java使用jar命令配置服务器端口的完整指南》本文将详细介绍如何使用java-jar命令启动应用,并重点讲解如何配置服务器端口,同时提供一个实用的Web工具来简化这一过程,希望对大家有所帮助... 目录1. Java Jar文件简介1.1 什么是Jar文件1.2 创建可执行Jar文件2. 使用java

SpringBoot实现不同接口指定上传文件大小的具体步骤

《SpringBoot实现不同接口指定上传文件大小的具体步骤》:本文主要介绍在SpringBoot中通过自定义注解、AOP拦截和配置文件实现不同接口上传文件大小限制的方法,强调需设置全局阈值远大于... 目录一  springboot实现不同接口指定文件大小1.1 思路说明1.2 工程启动说明二 具体实施2

Java实现在Word文档中添加文本水印和图片水印的操作指南

《Java实现在Word文档中添加文本水印和图片水印的操作指南》在当今数字时代,文档的自动化处理与安全防护变得尤为重要,无论是为了保护版权、推广品牌,还是为了在文档中加入特定的标识,为Word文档添加... 目录引言Spire.Doc for Java:高效Word文档处理的利器代码实战:使用Java为Wo

SpringBoot日志级别与日志分组详解

《SpringBoot日志级别与日志分组详解》文章介绍了日志级别(ALL至OFF)及其作用,说明SpringBoot默认日志级别为INFO,可通过application.properties调整全局或... 目录日志级别1、级别内容2、调整日志级别调整默认日志级别调整指定类的日志级别项目开发过程中,利用日志

Java中的抽象类与abstract 关键字使用详解

《Java中的抽象类与abstract关键字使用详解》:本文主要介绍Java中的抽象类与abstract关键字使用详解,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录一、抽象类的概念二、使用 abstract2.1 修饰类 => 抽象类2.2 修饰方法 => 抽象方法,没有