阿b的Blog

关于数组

避免使用new Array()

1
2
var points = new Array();         // 差
var points = []; // 优

原因:new 关键词只会使代码复杂化。它还会产生某些不可预期的结果:

1
var points = new Array(40, 100);  // 创建包含两个元素的数组(40 和 100)

加入只有一个元素

1
var points = new Array(40); //创建了包含 40 个未定义元素的数组!!!

数组操作常用方法

push()

1
2
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.push("Kiwi"); // 向 fruits 添加一个新元素

shift()

删除首个数组元素,并把所有其他元素“位移”到更低的索引。

1
2
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.shift(); // 从 fruits 删除第一个元素 "Banana"

unshift()

unshift() 方法(在开头)向数组添加新元素:

1
2
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.unshift("Lemon"); // 向 fruits 添加新元素 "Lemon"

splice()

1
2
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.splice(2, 0, "Lemon", "Kiwi");

(2)表示位置
(0)表示从这个位置开始要删除的个数
其余表示要添加的元素

  • 使用splice()来删除元素
    1
    2
    var fruits = ["Banana", "Orange", "Apple", "Mango"];
    fruits.splice(0, 1); // 删除 fruits 中的第一个元素

    concat()

    连接数组
    1
    2
    3
    var myGirls = ["Cecilie", "Lone"];
    var myBoys = ["Emil", "Tobias", "Linus"];
    var myChildren = myGirls.concat(myBoys); // 连接 myGirls 和 myBoys

    slice()

    截取数组
    1
    2
    var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
    var citrus = fruits.slice(1); // citrus:[ "Orange", "Lemon", "Apple", "Mango" ]
    slice() 可接受两个参数,比如 (1, 3)。
    该方法会从开始参数选取元素,直到结束参数(不包括)为止。

数据排序

sort() 排序

sort() 方法以字母顺序对数组进行排序

reverse() 反转数组

sort()对数组数字进行排序

1
2
var points = [40, 100, 1, 5, 25, 10];
points.sort(function(a, b){return a - b});