Skip to content

数据结构与算法之数组 #19

@wulala

Description

@wulala

Array.length

返回或设置(截断、扩展,扩展后自动获得undefined值)数组的元素个数。但是并不一定表示定义项目个数

var letter = ['a', 'b', 'c']
letter[25] = 'z'
console.log( Object.keys(letter) ) // ['a', 'b', 'c', 'z']
console.log( letter.length ) // 26

创建数组

  • var arr = [] // javascript: the goods parts 推荐用法

  • var arr = new Array() // 没有参数,创建实例 ,,, [], length = 0

  • var arr = new Array(5) // 一个参数,指定数组的长度 ,,, [undefined × 5], length = 5

  • var arr = new Array(5,4) // 多个参数,作为数组的初始值 ,,, [5,4], length = 2

  • var arr = Array.of(5) // 一个参数,创建单项值的数组 ,,, [5], length = 1

  • var arr = Array.of(5,4) // 多个参数,创建多项值的数组 ,,, [5,4], length = 2

  • var arr = RegExp.exec(str)

  • var arr = String.match(regexp)

  • var arr = String.split

  • var arr = Object.keys(obj)

判断数组

arr instanceof Array

instanceof运算符用来测试一个对象在其原型链中是否存在一个构造函数的 prototype 属性

创建一个(构造)函数自动获得一个prototype属性,此属性指向函数的原型对象

// 原型对象自动获得一个 constructor 属性,此属性指向 prototype 属性所在函数的指针

当调用构造函数创建一个实例后,此实例内部将包含一个指针 proto,指向构造函数的原型对象,此连接存在于 实例与构造函数的原型对象 之间,而非实例与构造函数

Array.prototype.isPrototypeOf(arr)

isPrototypeOf() 方法用于测试一个对象是否存在于另一个对象的原型链上

Object.prototype.toString.call(arr) == "[object Array]"

没啥好说的,Object.toSring() 就是返回 [object type] (type 为对象类型), 自定义的构造函数返回 [object Object]

arr.constructor == Array

constructor 用来检测对象的类型,(系统级引用类型、自定义的构造函数)

对象是引用类型的一个实例,引用类型是一种数据结构,用来将数据和功能组织在一起,通常也成为 类 / 对象定义(描述的是一类对象所具有的属性和方法)

Array.isArray(arr)

撸js基础之数组

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions