资讯专栏INFORMATION COLUMN

JavaScript面向对象编程——Array类型

DirtyMind / 683人阅读

摘要:中并没有明确的数组数据类型。返回数组对象的原始值。专门用于筛选出数组中符合函数判断条件的元素组成的心数组。专门用于对原数组中每个元素执行相同的函数对象规定的操作。

概述 一维数组

数组是一个有序的数据集合,可以通过数组名称和索引进行访问。JavaScript中并没有明确的数组数据类型。

二维数组

数组是可以嵌套的,这就意味着一个数组可以作为一个袁旭被包含在另一个数组里面。利用JavaScript这个特点,创建二维数组,即数组的数组。

数组的常见方法 检测数组

如何确定当前是一个数组,JavaScrpt提供了几种方式;
1.typeof无法检测数组对象:typeof[]返回object
2.instanceof:[]instanceof Array返回true/false
3.Object.prototype.toString.call([]):返回[objcet Array]
4.Array.prototype.isPrototypeOf([]):返回true/false
5.ES5中新方法:Array.isArray([]):返回true/false

var arr = [1,2,3,4,5];

console.log(arr instanceof Array);// true
/*
    Object.prototype.toString.call()方法
    * 作用 - 用于判断当前对象的(数据)类型
    * 结果 - [object Array]
    * 特点 - 可以准确判断出当前变量的类型
 */
console.log(Object.prototype.toString.call(arr));

console.log(typeof null);// object
// console.log(null instanceof Null);// 报错
console.log(null instanceof Object);// false
console.log(Object.prototype.toString.call(null));
// Object.prototype.isPrototypeOf()方法 - 判断指定类型是否出现在当前对象的原型链中
console.log(Array.prototype.isPrototypeOf(arr));// true

console.log(Array.isArray(arr));// true
转换方法

JavaScript中提供了两种方法;
1.toString():把数组转换为字符串,并且返回结果。
2.valueOf():返回数组对象的原始值。

var arr = [1,2,3,4,5];
/*
    利用toString()方法将数组转换为字符串
    * 结果 - 多个数组元素被逗号进行分隔组成的字符串
 */
console.log(arr.toString());// 1,2,3,4,5

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

var obj = {
    name : "张无忌"
}
console.log(obj.valueOf());// true
排序方法

JavaScript提供了两种方法,用于数组的排序。
1.reverse():反转数组的元素顺序。
2.sort():对数组的元素进行排序。
要注意reverse()和sort()方法的返回值是经过排序之后的数组。

var arr = [3,1,2,3,4,5,10];

// console.log(arr.reverse());// [ 5, 4, 3, 2, 1 ]
/*
    Array.sort()方法
    * 作用 - 对数组中的元素进行排序
    * 注意
      * 并不是从小到达的排序
      * 影响原有数组元素的顺序
 */
// var result = arr.sort();
// console.log(result);
// console.log(arr);

var result = arr.sort(function(a,b){
    /*if (a < b) {
        return 1;
    }*/
    if (a > b) {
        return 1;
    }
})
console.log(arr);
console.log(result);
连接方法

连接方法一般用于多个数组之间的连接操作,在JavaScript中提供了:
concat()方法,连接两个或更多的数组,并返回结果。

var arr = [1,2,3,4,5];

console.log(arr.concat(6));
console.log(arr.concat([7,8,9]));
操作方法

操作方法就是用于数组的删除、插入和替换。在JavaScript中提供了两种方法。
1.slice():选取数组的一部分,并返回一个新数组。
2.splice():从数组中你那个添加或删除元素。

var arr = [1,2,3,4,5];
/*
    splice(start, deleteCount)方法
    * 作用 - 用于删除当前数组中指定位置指定个数的元素
    * 参数
      * start - 表示删除的开始位置
      * deleteCount - 表示删除的个数
    * 返回值 - 将删除的元素组成的新数组进行返回
 */
// var result = arr.splice(0, 5);
// console.log(result);
// console.log(arr);

/*
    splice(start, deleteCount, item1, item2, ...)方法
    * 作用 - 向指定数组的指定位置添加元素
    * 参数
      * start - 表示删除的开始位置
      * deleteCount - 表示删除的个数
      * item1, item2, ... - 表示向数组添加的元素
    * 返回值 - 将删除的元素组成的新数组进行返回
 */
// var result = arr.splice(0, 0, 6,7,8);
// console.log(result);
// console.log(arr);

// var result = arr.splice(0, 3, 6,7,8);
// console.log(result);
// console.log(arr);

/*
    slice()方法
    * 作用 - 截取指定数组中的元素
    * 参数
      * begin - 表示开始截取的位置(从 0 开始)
      * end - 表示结束截取的位置(截取最后一个位置的下一个位置)
    * 返回值 - 返回截取的元素组成的新数组
 */
var result = arr.slice(2,3);
console.log(result);
位置方法

位置方法用于获取数组中指定元素的索引值,在JavaScript中提供了两种方法。
1.indexOf()搜索数组中的元素,并返回他所在的位置。
2.lastlndexOf()返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索。

var arr = ["张无忌","周芷若","张无忌","赵敏","小昭"];
/*
    indexOf()和lastIndexOf()方法
    * 用于检索数组中是否包含指定元素内容 -> 返回元素所在的位置
      * indexOf() - 从左至右的顺序进行检索
      * lastIndexOf() - 从右至左的顺序进行检索
    * 返回第一个匹配元素的位置信息
    * 如果检索的元素并不在指定的数组中时 -> 结果为 -1
 */
console.log(arr.indexOf("张无忌"));// 0
console.log(arr.lastIndexOf("张无忌"));// 2
console.log(arr.indexOf("灭绝师太"));//
迭代与归并方法 迭代方法

JavaScript提供了如下方法,用于数组的迭代遍历:
1.every():判断数组中每个元素是否都满足fun函数定义的条件。只有满足才返回true,否则返回false。
2.filter():专门用于筛选出数组中符合fun函数判断条件的元素组成的心数组。
3.forEach():专门用于对原数组中每个元素执行相同的fun函数对象规定的操作。
4.map():专门用于基于袁术组创建新数组对象。
5.some():判断数组中是否包含满足fun含糊是定义的条件的元素,只要包含就返回true,否则返回false。

var arr = ["张无忌","周芷若","赵敏","小昭"];
/*
    Array.prototype.forEach()方法
    * 作用 - 用于遍历指定数组
    * 参数
      * callback - 表示回调函数
        * currentValue - 表示遍历数组得到每个元素
        * index - 表示遍历数组得到每个元素对应的索引值
        * array - 表示遍历的数组
    *
 */
arr.forEach(function(currentValue, index, array){
    console.log(array);
});

/* 为Array类型新增forEach()方法
Object.defineProperty(Array.prototype, "forEach", {
    value : function(callback){
        // 假设得到当前的数组
        for (var i=0; i
归并方法

归并方法用于数组的迭代归并,JavaScript中提供了两种方式
1.reduce()将数组从左向右迭代。
2.reduceRight()将数组从右向左迭代.

var arr = [1,2,3,4,5];

arr.reduce(function(accumulator, currentValue, currentIndex, array){
    console.log(accumulator)
    return accumulator + currentValue;
});

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/108384.html

相关文章

  • JavaScript中的面向对象(object-oriented)编程

    摘要:对象在中,除了数字字符串布尔值这几个简单类型外,其他的都是对象。那么在函数对象中,这两个属性的有什么区别呢表示该函数对象的原型表示使用来执行该函数时这种函数一般成为构造函数,后面会讲解,新创建的对象的原型。这时的函数通常称为构造函数。。 本文原发于我的个人博客,经多次修改后发到sf上。本文仍在不断修改中,最新版请访问个人博客。 最近工作一直在用nodejs做开发,有了nodejs,...

    JerryZou 评论0 收藏0
  • 详解js面向对象编程

    摘要:看下面一个例子优点使用构造器函数的好处在于,它可以在创建对象时接收一些参数。按照惯例,构造函数的函数名应始终以一个大写字母开头,以区分普通函数。返回该对象的源代码。使您有能力向对象添加属性和方法。 基本概念 ECMA关于对象的定义是:无序属性的集合,其属性可以包含基本值、对象或者函数。对象的每个属性或方法都有一个名字,而每个名字都映射到一个值。 类 在现实生活中,相似的对象之间往往都有...

    lolomaco 评论0 收藏0
  • JavaScript深入浅出

    摘要:理解的函数基础要搞好深入浅出原型使用原型模型,虽然这经常被当作缺点提及,但是只要善于运用,其实基于原型的继承模型比传统的类继承还要强大。中文指南基本操作指南二继续熟悉的几对方法,包括,,。商业转载请联系作者获得授权,非商业转载请注明出处。 怎样使用 this 因为本人属于伪前端,因此文中只看懂了 8 成左右,希望能够给大家带来帮助....(据说是阿里的前端妹子写的) this 的值到底...

    blair 评论0 收藏0
  • JavaScript 面向对象开发知识总结基础篇

    摘要:字面形式允许你在不需要使用操作符和构造函数显式创建对象的情况下生成引用值。操作符以一个对象和一个构造函数作为参数鉴别数组有前一小结可以知道鉴别数组类型可以使用。属性是函数独有的,表明该对象可以被执行。这种函数被称为匿名函数。 引子: 1.JavaScript 中的变量类型和类型检测 1.1原始类型 1.2引用类型 1.3內建类型的实例化 1.4函数的字面形式 1.5正则表达式的字...

    Kross 评论0 收藏0
  • 函数式编程面向对象编程[2]: 静态类型语言的表达力 静态类型语言与动态类型语言

    摘要:动态类型语言的表达力动态语言通常更方便开发较小的项目,因为可以无需声明类型而节省了很多麻烦。 函数式编程与面向对象编程[2]: 静态类型语言的表达力 静态类型语言与动态类型语言 之剑 2016.5.3 21:43:20 像Java或者C#这样强类型的准静态语言在实现复杂的业务逻辑、开发大型商业系统、以及那些生命周期很长的应用中也有着非常强的优势 下面我们就来学习一下这些知识. 有三...

    Betta 评论0 收藏0

发表评论

0条评论

DirtyMind

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<