js中的Array对象属性和方法整理(二)

简介: js中的Array对象属性和方法整理

Array对象方法


方法 描述

concat() 连接两个或更多的数组,并返回结果。

join() 把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。

pop() 删除并返回数组的最后一个元素

push() 向数组的末尾添加一个或更多元素,并返回新的长度。

reverse() 颠倒数组中元素的顺序。

shift() 删除并返回数组的第一个元素

slice() 从某个已有的数组返回选定的元素

sort() 对数组的元素进行排序

splice() 删除元素,并向数组添加新元素。

toSource() 返回该对象的源代码。

toString() 把数组转换为字符串,并返回结果。

toLocaleString() 把数组转换为本地数组,并返回结果。

unshift() 向数组的开头添加一个或更多元素,并返回新的长度。

valueOf()返回数组对象的原始值


1.4 concat()


语法: array.concat(value, ...)

其中value, ... 要添加到array中的值,可以是任意多个。

返回值: 一个新数组,是把指定的所有参数添加到array中构成的。

描述:方法concat()将创建并返回一个新数组,这个数组是将所有参数都添加到array中生成的。它并不修改array。如果要进行concat()操作的参数是一个数组,那么添加的是数组中的元素,而不是数组。

例子:

var a = [1, 2, 3];
a.concat(4, 5); // Returns [1,2,3,4,5]
a.concat([4, 5]); // Returns [1,2,3,4,5]
a.concat([4, 5], [6, 7]); // Returns [1,2,3,4,5,6,7]
a.concat(4, [5, [6, 7]]); // Returns [1,2,3,4,5,[6,7]]


1.5 join ()


语法: array.join()

array.join(separator)

separator

   在返回的字符串中用于分隔数组元素的字符或字符串,这是选用的。如果省略了这个参数,用逗号作为分隔符。

返回值:一个字符串,通过把array的每个元素转换成字符串,然后把这些字符串连接起来,在两个元素之间插入separator字符串而生成。

描述:方法join()把每个数组元素转换成一个字符串,然后把这些字符串连接起来,在两个元素之间插入separator字符串。返回生成的字符串。

可以用String对象的split()方法执行相反的操作,即把一个字符串分割成数组元素。详情参见“String.split()”。

例子:  

var a = new Array(1, 2, 3, "testing");
 var s = a.join("+"); // s is the String "1+2+testing"


1.6 pop()


语法: arrayObject.pop()

其中value, ... 要添加到array中的值,可以是任意多个。

返回值: arrayObject 的最后一个元素。

描述: pop() 方法将删除 arrayObject 的最后一个元素,把数组长度减 1,并且返回它删除的元素的值。如果数组已经为空,则 pop() 不改变数组,并返回 undefined 值。

例子:

var arr = new Array(["George","John","Thomas"])
document.write(arr) // Returns George,John,Thomas
document.write(arr.pop())// Returns  Thomas
document.write(arr) // Returns  George,John


1.7 push()


语法: array.push(value, ...)

value, ...    要添加到array尾部的值,可以是一个或多个。

返回值: 把指定的值添加到数组后的新长度。

描述:方法push()将马它的参数顺次添加到array的尾部。它直接修改array,而不是创建一个新的数组。方法push()和方法pop()用数组提供先进后出栈的功能。参阅"Array.pop()"中的示例。

例子:    

var a = [1, 2, 3];
 a.concat(4, 5); // Returns [1,2,3,4,5]
 a.concat([4, 5]); // Returns [1,2,3,4,5]
 a.concat([4, 5], [6, 7]); // Returns [1,2,3,4,5,6,7]
 a.concat(4, [5, [6, 7]]); // Returns [1,2,3,4,5,[6,7]]


1.8 reverse()


语法: array.reverse()

该方法会改变原来的数组,而不会创建新的数组。

返回值:

描述:Array对象的方法reverse()将颠倒数组中元素的顺序。它在原数组上实现这一操作作为替代:重排指定的array的元素,但并不创建新数组。如果对array有多个引用,那么通过所有引用都可以看到数组元素的新顺序。

例子:

a = new Array(1, 2, 3);    // a[0] == 1, a[2] == 3;
a.reverse();                   // Now a[0] ==3, a[2] == 1;


1.9 shift()


语法: array.shift()

返回值: 数组原来的第一个元素。

描述:方法shift()将把array的第一个元素移出数组,返回那个元素的值,并且将余下的所有元素前移一们,以填补数组头部的空缺。如果数组是空的,shift()将不进行任何操作,返回undefiend值。注意,该方法不创建新的数组,而是直接修改原有的array。

方法sihft()和方法Array.pop()相似,只不过它在数组头部操作,而不是在尾部操作。该方法常常和unshift()一起使用。

例子:

var a = [1, [2, 3], 4];
a.shift(); // Return 1;  a = [[2,3], 4];
a.shift(); // Return [2,3];  a = [4];


1.10 slice()


语法: array.slice(start, end)

start

   数组片段开始处的数组下标。如果是负数,它声明从数组尾部开始算起的位置。也就是说-1指最后一个元素,-2指倒数第二个元素,以此类推。

end

   数组片段结束处的后一个元素的数组下标。如果没有指定这个参数,切分的数组包含从start开始到数组结束的所有元素。如果这个参数是负数,它声明的是从数组尾部开始算起的元素。

返回值: 一个新数组,包含从start到end(不包括该元素)指定的array元素。

描述:方法slice()将返回array的一部分,或者说是一个子数组。返回的数组包含从start开始到end之间的所有元素,但是不包括end所指的元素。如果没有指定end,返回的数组包含从start开始到原数组结尾的所有元素。

注意,该方法并不修改数组。如果想删除数组中的一段元素,应该使用方法Array.splice()。

例子:

var a = [1, 2, 3, 4, 5];
a.slice(0, 3); // Return [1,2,3]
a.slice(3); // Return [4,5]
a.slice(1, -1); // Return [2,3,4]
a.slice(-3, -2); // Return [3]; buggy in IE 4: return [1,2,3]


1.11 sort()    


语法: array.sort()

array.sort(orderfunc)

orderfunc

   用来指定按什么顺序进行排序的函数,可选。

返回值: 对数组的引用。注意,数组在原数组上进行排序,不制作副本。

描述:方法sort()将在原数组上对数组元素进行排序,即排序时不创建新的数组副本。如果调用方法sort()时没使用参数,将按字母顺序(更精确地说,是按 照字符编码的顺序)对数组中的元素进行排序。要实现这一点,首先应把数组的元素都转成字符串(如果有必要的话),以便进行比较。


如果想按照特别的顺序进行排序,就必须提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数a和b,其返回值如下:

●  如果根据你的评判标准,a小于b,在排序后的数

例子: 下面的代码展示了如何编写按数字顺序,而不是按字母顺序对数组进行排序的比较函数:

//An ordering function for a numerical sort
function numberorder(a, b) {
    return a - b;
}
var a = new Array(33, 4, 1111, 222);
a.sort(); //Alphabetical sort: 1111, 222, 33, 4
a.sort(numberorder); //Numerical sort: 4, 33, 222, 1111


1.12 splice(start, deleteCount, value, ...)


语法: array.splice(start, deleteCount, value, ...)

start

   开始插入和(或)删除的数组元素下标。

deleteCount

   从start开始,包括start所指的元素在内要删除的元素个数。这个参数是先用的,如果没有指定它,splice()将删除从start开始到原数组结尾的所有元素。

value, ...要插入数组的零个或多个值,从start所指的下标处开始插入。

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

描述:方法splice()将删除从start开始(包括start所指的元素在内)的零个或多个元素,并且用参数列表中声明的一个或多个值来替换那些被删除的 元素。位于插入或删除的元素之后的数组元素都会被移动,以保持它们与数组其它元素的连续性。注意,虽然splice()方法与slice()方法名称很相 似,但作用不同,方法splice()直接修改数组。

例子:

var a = [1, 2, 3, 4, 5, 6, 7, 8];
a.splice(4); // Returns [5,6,7,8] ; a is [1,2,3,4]
a.splice(1, 2); // Returns [2,3] ; a is [1,4]
a.splice(1, 1); // Returns [4] ; a is [1]
a.splice(1, 0, 2, 3); // Returns [] ; a is [1,2,3]


1.13 toSource()


语法: object.toSource()

注释:该方法在 Internet Explorer 中无效。

返回值: 一个新数组,是把指定的所有参数添加到array中构成的。

描述: toSource() 方法表示对象的源代码。该原始值由 Array 对象派生的所有对象继承。toSource() 方法通常由 JavaScript 在后台自动调用,并不显式地出现在代码中。

例子:

function employee(name, job, born) {
 this.name = name;
 this.job = job;
 this.born = born;
}
var bill = new employee("Bill Gates", "Engineer", 1985);
document.write(bill.toSource());
Return: //   ({name:"Bill Gates", job:"Engineer", born:1985})


1.14 toString()


语法: array.toString()

TypeError

   调用该方法时,若对象不是Array,则抛出该异常。

返回值: array的字符串表示。

描述:数组的toStirng()方法将把数组转换成一个字符串,首先是把每个数组元素转换为字符串并且返回这个字符串。当数组用于字符串环境中,JavaScript会调用这一方法将数组自动转换成一个字符串。但在某些情况下,需要显式地调用这个方法。

toString() 在把数组转换成字符串时,首先要将数组的每个元素都转换成字符串(通过调用这些元素的toString()方法)。当每个元素都被转换成字符串时,它就以 列表的形式输出这些字符串,字符串之间用逗号分隔。返回值与没有参数的join()方法返回的字符串相同。


1.15 toLocaleString()


语法: array.toLocaleString()

TypeError

   调用该方法时,若对象不是Array,则抛出该异常。

返回值: 数组array的局部字符串表示。

描述:数组的方法toLocaleString()将返回数组的局部字符串表示。它首先调用每个数组元素的toLocaleString()方法,然后使用地区特定的分隔符把生成的字符串连接起来,形成一个新字符串。


1.16 unshift()


语法: array.unsift(value, ...)

其中value, ... 要插入数组头部的一个或多个值。

返回值: 数组的新长度。

描述:方法unshift()将把它的参数插入array的头部,并将已经存在的元素顺次地移到较高的下标处,以便留出空间。该方法的第一个参数将成为数组新的 元素0,如果还有每二个参数,它将成为新的元素1,以经类推。注意,unshift()不创建新数组,而是直接修改原有数组。

例子: 方法unshift()通常和方法shift()一起使用。

var a = []; // a : []
a.unshift(1); // a : [1]              Return 1
a.unshift(22); // a : [22,1]          Return 2
a.shift(); // a : [1]              Return 22
a.unshift(33, [4, 5]); // a : [33,[4,5],1]  Return 3


1.17 valueOf()


语法: arrayObject.valueOf()

返回值: valueOf() 方法返回 Array 对象的原始值。

描述: 该原始值由 Array 对象派生的所有对象继承。valueOf() 方法通常由 JavaScript 在后台自动调用,并不显式地出现在代码中。

var bool = new Boolean(0);
document.write(bool.valueOf());

输出false


目录
相关文章
|
11天前
|
JavaScript 前端开发
如何在 JavaScript 中使用 __proto__ 实现对象的继承?
使用`__proto__`实现对象继承时需要注意原型链的完整性和属性方法的正确继承,避免出现意外的行为和错误。同时,在现代JavaScript中,也可以使用`class`和`extends`关键字来实现更简洁和直观的继承语法,但理解基于`__proto__`的继承方式对于深入理解JavaScript的面向对象编程和原型链机制仍然具有重要意义。
|
15天前
|
Web App开发 JavaScript 前端开发
如何确保 Math 对象的方法在不同的 JavaScript 环境中具有一致的精度?
【10月更文挑战第29天】通过遵循标准和最佳实践、采用固定精度计算、进行全面的测试与验证、避免隐式类型转换以及持续关注和更新等方法,可以在很大程度上确保Math对象的方法在不同的JavaScript环境中具有一致的精度,从而提高代码的可靠性和可移植性。
|
20天前
|
监控 JavaScript 前端开发
确定使用 `defer` 属性还是 `async` 属性来异步加载 JavaScript
【10月更文挑战第24天】选择使用 `defer` 属性还是 `async` 属性来异步加载 JavaScript 是一个需要综合考虑多个因素的决策。需要根据脚本之间的依赖关系、页面加载性能要求、脚本的功能和重要性等因素来进行权衡。在实际应用中,需要通过测试和验证来确定最适合的加载方式,以提供更好的用户体验和页面性能。
|
15天前
|
JavaScript 前端开发 图形学
JavaScript 中 Math 对象常用方法
【10月更文挑战第29天】JavaScript中的Math对象提供了丰富多样的数学方法,涵盖了基本数学运算、幂运算、开方、随机数生成、极值获取以及三角函数等多个方面,为各种数学相关的计算和处理提供了强大的支持,是JavaScript编程中不可或缺的一部分。
|
20天前
|
监控 JavaScript 前端开发
使用 `defer` 属性异步加载 JavaScript
【10月更文挑战第24天】使用 `defer` 属性异步加载 JavaScript 是一种有效的提高页面性能和用户体验的方法。通过合理设置 `defer` 属性,可以在不影响页面渲染的情况下异步加载脚本,并确保脚本的执行顺序。在实际应用中,需要根据具体情况选择合适的加载方式,并注意处理可能出现的问题,以确保页面能够正常加载和执行。
|
15天前
|
JavaScript 前端开发 开发者
|
1月前
|
缓存 JavaScript 前端开发
JavaScript中数组、对象等循环遍历的常用方法介绍(二)
JavaScript中数组、对象等循环遍历的常用方法介绍(二)
31 1
|
1月前
|
JavaScript 前端开发 大数据
在JavaScript中,Object.assign()方法或展开语法(...)来合并对象,Object.freeze()方法来冻结对象,防止对象被修改
在JavaScript中,Object.assign()方法或展开语法(...)来合并对象,Object.freeze()方法来冻结对象,防止对象被修改
18 0
|
1月前
|
JavaScript 前端开发 索引
JavaScript中数组、对象等循环遍历的常用方法介绍(一)
JavaScript中数组、对象等循环遍历的常用方法介绍(一)
21 0
|
1月前
|
人工智能 前端开发 JavaScript
拿下奇怪的前端报错(一):报错信息是一个看不懂的数字数组Buffer(475) [Uint8Array],让AI大模型帮忙解析
本文介绍了前端开发中遇到的奇怪报错问题,特别是当错误信息不明确时的处理方法。作者分享了自己通过还原代码、试错等方式解决问题的经验,并以一个Vue3+TypeScript项目的构建失败为例,详细解析了如何从错误信息中定位问题,最终通过解读错误信息中的ASCII码找到了具体的错误文件。文章强调了基础知识的重要性,并鼓励读者遇到类似问题时不要慌张,耐心分析。