`
kstgjfk403
  • 浏览: 31126 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ECMA5Script 数组新增方法

阅读更多

数组是 ECMAScript 中非常重要的一个内置对象。在 ECMAScript 代码中可以看到大量对数组的使用。Array 对象用来表示数组。在 ECMAScript 规范第三版中并没有为 Array 对象提供比较多的实用函数来对数组进行操作。很多 JavaScript 框架对 ECMAScript 规范中的 Array 对象进行增强。ECMAScript 规范第五版中对 Array 对象进行了增强,因此很多功能可以直接依靠运行环境的实现。

 

Array 对象本身是一个构造函数,可以用来创建新的数组实例。当 Array 对象本身作为一个函数来使用时,其作用相当于作为构造函数来使用。因此“Array(1,2,3)”的结果与“new Array(1,2,3)”是相同的。新创建的 Array 对象实例的内部属性 [[Prototype]] 的值是内置的 Array 原型对象,即 Array.prototype。通过 Array.isArray 函数可以判断一个对象是否为数组。


在 Array.prototype 中增加了一些新的实用函数,具体如下所示:

Array.prototype.indexOf 和 Array.prototype.lastIndexOf:在两个函数用来在数组中查找指定元素的位置(下标从0开始)。在进行比较判断时,采用的是严格的对象比较算法,即相当于使用 === 来进行比较。

 

Array.prototype.every:该函数用来判断数组中的全部元素是否都满足给定的条件。条件是通过作为参数的另一个函数来指定的。函数的返回值(true 或 false)决定了条件是否满足。

 

Array.prototype.some:该函数的作用与使用方式类似于 Array.prototype.every,不同的是 Array.prototype.some 只要求数组中有任意一个元素满足条件即可。

 

Array.prototype.forEach:该函数用来遍历数组中的所有元素,对每个元素调用由参数指定的函数。

 

Array.prototype.map:该函数对数组中的每个元素执行特定的处理,并把处理的结果保存在一个新的数组中。

Array.prototype.filter:该函数根据给定的条件对数组中的元素进行过滤。只有满足条件的元素才会出现在结果数组中。

 

Array.prototype.reduce 和 Array.prototype.reduceRight:这两个函数用来对数组中的元素进行累积操作。上一次操作的结果会作为下一次操作的输入值。两个函数的区别在于 reduceRight 是从数组的末尾开始进行处理。

 var array = [1, 2, 3, 4, 5];
 array.indexOf(3); // 值为 下标2
 array.lastIndexOf(4); // 值为 下标3
 array.every(function(value, index, arr) {
    return value % 2 === 0;
 }); // 值为 false
 array.some(function(value, index, arr) {
    return value % 2 === 0;
 }); // 值为 true
 array.forEach(function(value, index, arr) {
    console.log(value);
 }); //对数组中的每个元素调用该函数
 array.map(function(value, index, arr) {
    return value * 2;
 }); // 每个元素执行特定的处理:值为 [2, 4, 6, 8, 10]
 array.filter(function(value, index, arr) {
    return value % 2 === 0;
 }); // 执行过滤函数,返回值为 [2, 4]
 array.reduce(function(preValue, value, index, arr) {
    return preValue + value;
 }); // 值为 15
 array.reduceRight(function(preValue, value, index, arr) {
    return preValue * value;
 }); // 值为 120

分享到:
评论

相关推荐

    Ecma script 5.0

    - **标题**:“Ecma script 5.0” 这个标题简洁明了地指出了文档的主题是关于EcmaScript 5.0标准的定义。EcmaScript是一种被广泛应用于网页浏览器中的脚本语言,它为网页开发提供了强大的功能支持。EcmaScript 5.0...

    Es6Demo:Ecma Script 6 演示应用程序

    let和const是ES6新增的变量声明关键字。let解决了var作用域不明确的问题,提供了块级作用域。const用于声明常量,一旦赋值后不能改变,且不允许重复声明。 4. **解构赋值** 这是一种可以从数组或对象中提取值并赋...

    js试题(1).pdf

    Math对象封装了与数学计算相关的函数,而Array对象则提供了处理数组的各种方法和属性。 在JavaScript中,函数既是一种数据类型,也可以作为构造函数创建对象,这种特性使得JavaScript具有函数式编程的元素。此外,...

    正则表达式

    \w 匹配一个可以组成单词的字符(alphanumeric,这是我的意译,含数字),包括下划线,如[\w]匹配"$5.98"中的5,等于[a-zA-Z0-9] \W 匹配一个不可以组成单词的字符,如[\W]匹配"$5.98"中的$,等于[^a-zA-Z0-9]。 用re...

    1.14 JavaScript基础.pdf

    JavaScript 中的数据类型包括:数字、字符串、布尔值、数组、对象、null、undefined 等。 运算符 JavaScript 中的运算符包括:算术运算符、比较运算符、逻辑运算符、赋值运算符、字符串运算符等。 流程控制语句 ...

    前端笔试面试题目总结.docx编程资料

    - **数组方法**:`push()`、`pop()`、`shift()`、`unshift()`、`concat()`、`slice()`、`splice()`、`map()`、`filter()`、`reduce()` 等。 #### JavaScript 继承方式 - **经典继承**:使用 `prototype` 链实现。 ...

Global site tag (gtag.js) - Google Analytics