javascript学习记录-数组(4) 2014/02/21

本文详细介绍了JavaScript中数组的各种操作方法,包括多维数组的创建与使用、数组元素的连接、排序、逆序以及插入和删除等操作,并通过具体示例进行说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

多维数组

不存在真正意义的多维数据,实现的方式是数组的数组,直接上例子

var table = new Array(10);

for (var i = 0; i < table.length; i++) {
    table[i] = new Array(10);
}

for ( var row = 0; row < table.length; row++) {
    for ( var col = 0; col < table[row].length; col++) {
        table[row][col] = row * col;
    }
}

var product = table[5][7];    //35

数组的方法

ECMAScript 3

1 Array.join(splitor)

返回所有数据中的元素值为字符串,然为用分隔符连接起来,默认用逗号(,)连接

例子

var a = [1, 2, 3];    // [1, 2, 3]
a.join()    // "1,2,3"
a.join(' ');    // "1 2 3"
a.join('');    //"123"

var b = new Array(10);
b.join('-');    //"---------"

Array.join()是String.split()的逆方法

2 Array.reverse()

将数据逆序然后存储到原来的数组中

举例:

var a = [1, 2, 3]
a.reverse().join()    // "3,2,1"

3 Array.sort()

数组元素值排序,默认是转换成字符串后按照字母顺序排列,如果数据元素有值是undefined,则排到最后

举例

var a = new Array(undefined, 'banana', 'cherry', 'apple');    // ["banana", "cherry", "apple"]
a.sort();    // ["apple", "banana", "cherry", undefined]

如果想自定义排序,则传递一个比较函数来自定义代码

举例

var a = [33, 4, 1111, 2222];
a.sort();    // [1111, 2222, 33, 4]
a.sort(function(a, b) { return a - b; });    // [4, 33, 1111, 2222]
a.sort(function(a, b) { return b - a; });    // [2222, 1111, 33, 4]

如果想a比b小,那就返回小于0的数,反之大于0的数,如果相等返回0

更复杂点的例子

var a = ['ant', 'Bug', 'cat', 'Dog'];
a.sort();    // ["Bug", "Dog", "ant", "cat"]
a.sort(function(s, t) { 
    var a = s.toLowerCase(); 
    var b = t.toLowerCase(); 
    if (a < b) return -1;
    if (a > b) return 1; 
    return 0; 
});

// ["ant", "Bug", "cat", "Dog"]

4 Array.concat()

返加新数组,类似于push方法,但不改变原数组的值,直接上例子

var a = [1, 2, 3];    // [1, 2, 3]
a.concat(4, 5);    // [1, 2, 3, 4, 5]
a    //[1, 2, 3]
a.concat(4, 5);    // [1, 2, 3, 4, 5]
a.concat(4, 5);    // [1, 2, 3, 4, 5]
a.concat([4, 5]);    // [1, 2, 3, 4, 5] ,如果传递的是数组,自动扁平化
a.concat([9, [4, 5]]);    // [1, 2, 3, 9, [4, 5]],但不会递归

5 Array.slice(start, end)

返回数组的一部分元素组成的数组,>=start但小于end

var a = [1, 2, 3, 4, 5];
a.slice(0, 3);    // [1, 2, 3]
a.slice(3);    // [4, 5]
a.slice(1,-1);    // [2, 3, 4]
a.slice(-3, -2);    // [3]

6 Array.splice(start, delcount, insert...)

用于在数据中插入或删除元素

转载于:https://my.oschina.net/moyung2014/blog/201927

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值