Array 4个月前

编程语言
788
Array

Array 对象

构造函数

Array是原生对象,也是构造函数,可用来生成新数组。

var arr = new Array(2); //生成有两个成员的数组,每个位置都是空值。
var arr2 = Array(2); //没有使用new关键字结果一样
arr.length // 2
arr // [ empty x 2 ]

代码规范有要求可读性, 加上new是很推荐的

Array()不同的参数个数会导致不一致的行为。

new Array() // []

new Array(1) // [ empty ]
new Array(2) // [ empty empty]

new Array('abc') // ['abc']
new Array([1]) // [Array[1]]

new Array(1, 2) // [1, 2]
new Array('a', 'b', 'c') // ['a', 'b', 'c']

Array()作为构造函数,行为不一致。 不建议使用它生成新数组,使用数组字面量更好

// bad
var arr = new Array(1, 2);

// good
var arr = [1, 2];

ps : 当参数是一个正整数,返回数组的成员都是空位。虽读取时返回undefined,但该位置没有任何值。虽可读到length属性,但是取不到键名。

Array方法

Array.isArray()

Array.isArray表示参数是否为数组, 弥补typeof运算符的不足, 该方法属于静态方法 typeof运算符只能显示数组的类型是Object,而Array.isArray方法可识别数组。

var arr = [1, 2, 3];

typeof arr // "object"
Array.isArray(arr) // true

push(),pop()

push方法用于在数组的末端添加元素,并返回添加新元素后的数组长度。

var arr = [];
arr.push(1) // 1
arr.push('a') // 2
arr.push(true, {}) // 4
arr // [1, 'a', true, {}]

pop方法用于删除最后一个元素,并返回该元素。

var arr = ['a', 'b', 'c'];
arr.pop() // 'c'
arr // ['a', 'b']

对空数组使用pop方法返回undefined

[].pop() // undefined

shift(),unshift()

shift()方法用于删除数组的第一个元素,并返回该元素。

var a = ['a', 'b', 'c'];

a.shift() // 'a'
a // ['b', 'c']

unshift()方法用于在数组的第一个位置添加元素,并返回添加新元素后的数组长度。

var arr = [ 'c', 'd' ];
arr.unshift('a', 'b') // 4 (可以有多个参数
arr // [ 'a', 'b', 'c', 'd' ]

sort()

sort方法对数组成员进行排序,默认是按照字典顺序排序

['d', 'c', 'b', 'a'].sort()
// ['a', 'b', 'c', 'd']

[4, 3, 2, 1].sort()
// [1, 2, 3, 4]

[11, 101].sort()
// [101, 11]

[10111, 1101, 111].sort()
// [10111, 1101, 111] (字典排序

ps:sort()方法不是按照大小排序,而是按照字典顺序。 数值会被先转成字符串,再按照字典顺序进行比较,所以101排在11的前面。

如果想让sort方法按照自定义方式排序,可以传入一个函数作为参数。

[10111, 1101, 111].sort(function (a, b) {
  return a - b;
})
// [111, 1101, 10111]

sort的参数函数本身接受两个参数,表示进行比较的两个数组成员.如果该函数的返回值大于0,表示第一个成员排在第二个成员后面; 其他情况下,都是第一个元素排在第二个元素前面。

image
EchoEcho官方
无论前方如何,请不要后悔与我相遇。
1377
发布数
439
关注者
2223475
累计阅读

热门教程文档

Typescript
31小节
Java
12小节
Python
76小节
React Native
40小节
Vue
25小节