JavaScript---数组

数组

语法:

[element0, element1, ..., elementN]
new Array(element0, element1[, ...[, elementN]]) 
new Array(arrayLength)

创建数组

使用数组直接量是创建数组最简单、最直观的方法,在方括号中将数组元素用逗号隔开即可。例如:

var empty = [];                 // 没有元素的空数组 
var num   = [1, 3, 5, 7, 9];    // 有 5 个数值的数组 
var mixin = ['Bob', 20, true];  // 3 种不同元素的数组

调用构造函数 Array() 是创建数组的另一种方法。

调用时没有参数:

var empty = new Array();            // 没有元素的空数组 

该方式创建了一个没有任何元素的空数组,等同于数组直接量[ ]

调用时传入一个数值参数,它指定数组的长度:

var len = new Array(5);             // 指定长度的数组

这种方式用来创建指定长度的数组。当预先知道所需元素个数时,这种方式可以用来预先分配一个数组空间。注意:数组中没有存储值,不能认为它是包含 5个值为 undefined元素的数组。

显示指定两个或多个数组元素:

var mixin = new Array('Bob', 20, true);  // 3 种不同元素的数组

构造函数的参数将会成为新数组的元素,等同于数组直接量:

var mixin = ['Bob', 20, true];  // 3 种不同元素的数组

数组长度

每个数组都有一个length 属性,length 属性值代表数组中元素的个数

var empty = [];                     // 数组没有元素 
var letters = ['a', 'b', 'c', 'd']; // 数组有 5 个元素 
console.log(empty.length);          // 0 
console.log(letters.length);        // 5 

访问和修改数组元素

数组创建完成后,我们可以[ ] 操作符访问数组中的元素,数组的引用位于方括号左边。 方括号中是一个返回非负整数的任意表达式。使用该语法即可以访问数组中的元素,又可以修改数组中的元素

var letters = ['a', 'b', 'c', 'd']; 
console.log(letters[0]);      // 访问索引为 0 的元素 'a' 
console.log(letters[4 - 2]);  // 访问索引为 2 的元素 'c' 
letters[1] = 1;               // 修改索引为 1 的元素 ['a', 1, 'c', 'd'] 
letters[1 + 2] = 3;           // 修改索引为 3 的元素 ['a', 1, 'c', 3]

添加和删除数组元素

添加数组元素最简单的方式是为新索引赋值:

var heroes = [];       // 创建空数组 
heroes[0] = '孙悟空';  // 然后通过索引向其中添加元素 
heroes[1] = '孙策';

也可以使用 push() 方法在数组末尾增加一个或多个元素:

var heroes = [];              // 创建空数组 
heroes.push('曹操');          // 在数组的末尾添加一个元素 ['曹操'] 
heroes.push('刘备', '孙策');  // 再添加两个元素  ['曹操', '刘备', '孙策'] 

在数组末尾压入一个元素与给数组长度索引赋值是一样的:

heroes[heroes.length] = '韩信';  // 在数组的末尾添加一个元素

也可以使用 unshift() 方法在数组的开始添加一个或多个元素,并返回新数组的长度。

var heroes = ['嬴政']; 
heroes.unshift('刘邦');         // 在数组的开始添加一个元素 ['刘邦', '嬴政'] heroes.unshift('韩信', '张良'); // 再添加两个元素 ['韩信', '张良', '刘邦', '嬴政']

说完了添加元素,我们来谈谈怎样删除元素。

改变数组的长度

var heroes = ['刘邦', '张良', '韩信', '萧何','刘备', '孙策'];
// 通过改变数组的长度删除元素 
heroes.length = 4;
console.log(heroes)  // ['刘邦', '张良', '韩信', '萧何'];

使用pop() 方法从数组的结尾弹出一个元素

var heroes = ['刘邦', '张良', '韩信', '萧何','刘备', '孙策'];
heroes.pop();   // ['刘邦', '张良', '韩信', '萧何','刘备'];

使用 shift() 从数组的开始删除一个元素

var heroes = ['刘邦', '张良', '韩信', '萧何','刘备'];
heroes.shift();   // ['张良', '韩信', '萧何','刘备'];

使用 splice() 方法删除数组中多个元素

var heroes = ['刘邦', '张良', '韩信', '萧何','刘备'];
heroes.splice(1, 2);   // ['刘邦', '萧何','刘备'];

数遍历数组

使用 for 循环遍历数组:

var heroes = ['刘邦', '张良', '韩信', '萧何','刘备']; 
var len = heroes.length; 

for (var i = 0; i < len; i++) { 
console.log(heroes[i]) 
}

使用 forEach() 方法遍历数组:

heroes.forEach(function(value, index){ 
console.log(value, index) 
})

数组方法

join():将数组的各个元素以指定的分隔符链接成一个字符串。

// 以指定的分隔符将数组元素拼接成字符串 
var heroes = ['刘邦', '张良', '韩信', '萧何','刘备']; 
console.log(heroes.join('#')); // 刘邦#张良#韩信#萧何#刘备

reverse():颠倒数组元素的顺序

var num = [1, 2, 3, 4, 5]; 
console.log(num.reverse()); // [5, 4, 3, 2, 1]

concat() 合并多个数组

var heroes1 = ['刘邦', '张良', '韩信']; 
var heroes2 = ['刘备', '张飞', '关羽']; 
var heroes3 = ['你', '我', '他']; 
var allHeroes = heroes1.concat(heroes2, heroes3); 
console.log(allHeroes); 
// 合并结果:['刘邦', '张良', '韩信', '刘备', '张飞', '关羽', '你', '我', '他']

sort() 对数组中的元素进行排序

slice(start, end):方法返回一个从开始到结束(不包括结束)选择的数组的一部分浅拷贝到一个新数组对象。且原始数组不会被修改。

var heroes1 = ['刘邦', '张良', '韩信', '刘备', '张飞', '关羽']; 
var heroes2 = heroes1.slice(2, 5); // ['韩信', '刘备', '张飞'] 
var heroes3 = heroes1.slice(2); // ['韩信', '刘备', '张飞', '关羽'] 
var heroes4 = heroes1.slice(-4); // ['韩信', '刘备', '张飞', '关羽'] 
var heroes5 = heroes1.slice(-4, -2); // ['韩信', '刘备'] 
var heroes6 = heroes1.slice(-4, 3); // ['韩信'] 
console.log(heroes2); 
console.log(heroes3); 
console.log(heroes4); 
console.log(heroes5); 
console.log(heroes6);

splice(start, [deleteCount, [item1, item2, …]])

只传入一个参数strat,从 start位置开始截取,直到数组结尾。

var heroes1 = ['刘邦', '张良', '韩信', '刘备', '张飞', '关羽'];
var heroes2 = heroes1.splice(2); console.log(heroes1); // ['刘邦', '张良'] console.log(heroes2); // ['韩信', '刘备', '张飞', '关羽']

传入 start 和 deletCount,从 start 位置开始截取,截取 deleteCount 个元素。

传入 start, deletCount 和 item1,从 start 位置开始截取,截取 deleteCount 个元素。

var heroes3 = heroes1.splice(2, 3, '你', '我', '他'); 
console.log(heroes1); // ['刘邦', '张良', '你', '我', '他', '关羽']; console.log(heroes3); // ['韩信', '刘备', '张飞']

如果 deleteCount 为 0 ,则表示只插入新元素,不删除原有的元素。

var heroes4 = heroes1.splice(2, 0, '你', '我', '他'); 
console.log(heroes1); 
// ['刘邦', '张良', '你', '我', '他', '韩信', '刘备', '张飞', '关羽'] console.log(heroes4); // []
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值