JavaScript 数组(Array)对象是一种特殊的对象,用于存储一组有序的数据,其中每个数据被赋予一个唯一的下标(索引)。数组对象可以存储任何类型的数据,包括Number、String、Boolean、Object等等,也可以存储其他数组。
数组对象最重要的特征就是可以以索引为基础进行访问和操作,这使得数组相对于简单的变量具有更高的实用价值。在JavaScript中创建一个数组有两种方式,分别是使用Array构造函数和使用数组字面量[]。
使用Array构造函数创建一个简单的数组,可以按照以下语法进行操作:
```javascript
var arr = new Array(); //创建一个空数组
var arr = new Array(10); //创建一个长度为10的数组
var arr = new Array(1, 2, 3, 4, 5); //创建一个包含1~5的数组
```
使用数组字面量[]创建一个简单的数组,可以按照以下语法进行操作:
```javascript
var arr = []; //创建一个空数组
var arr = [1, 2, 3, 4, 5]; //创建一个包含1~5的数组
```
数组对象提供了一系列方法来操作数组,常用的方法包括push(), pop(), unshift(), shift(), sort(), reverse(), concat()等。
- push()方法:向数组的末尾添加一个或多个元素,并返回新数组的长度。
```javascript
var arr = [1, 2, 3];
var len = arr.push(4, 5);
console.log(arr); //输出[1, 2, 3, 4, 5]
console.log(len); //输出5
```
- pop()方法:删除数组的最后一个元素,并返回该元素的值。
```javascript
var arr = [1, 2, 3];
var val = arr.pop();
console.log(arr); //输出[1, 2]
console.log(val); //输出3
```
- unshift()方法:向数组的开头添加一个或多个元素,并返回新数组的长度。
```javascript
var arr = [2, 3];
var len = arr.unshift(0, 1);
console.log(arr); //输出[0, 1, 2, 3]
console.log(len); //输出4
```
- shift()方法:删除数组的第一个元素,并返回该元素的值。
```javascript
var arr = [0, 1, 2, 3];
var val = arr.shift();
console.log(arr); //输出[1, 2, 3]
console.log(val); //输出0
```
- sort()方法:对数组进行排序,默认是按照字母顺序进行排序,如果需要按照数字大小排序需要指定一个排序函数。
```javascript
var arr = [3, 1, 4, 2];
arr.sort();
console.log(arr); //输出[1, 2, 3, 4]
var arr2 = [3, 1, 4, 2];
arr2.sort(function(a, b){return a - b;});
console.log(arr2); //输出[1, 2, 3, 4]
```
- reverse()方法:将数组中的元素倒序排列。
```javascript
var arr = [1, 2, 3];
arr.reverse();
console.log(arr); //输出[3, 2, 1]
```
- concat()方法:用于连接多个数组,并返回一个新的数组,原始数组不会改变。
```javascript
var arr1 = [1, 2, 3];
var arr2 = [4, 5, 6];
var arr3 = arr1.concat(arr2);
console.log(arr3); //输出[1, 2, 3, 4, 5, 6]
```
除了以上常用方法,数组对象还提供了很多其他的方法和属性,比如slice()、splice()、join()、indexOf()、length等等。
- slice()方法:用于提取数组的一部分,返回一个新的数组,原始数组不会改变。
```javascript
var arr = [1, 2, 3, 4, 5];
var arr2 = arr.slice(2, 4);
console.log(arr); //输出[1, 2, 3, 4, 5]
console.log(arr2); //输出[3, 4]
```
- splice()方法:用于删除、插入和替换数组的元素,并返回被删除的元素。
```javascript
var arr = [1, 2, 3, 4, 5];
arr.splice(2, 1); //[3] 删除第3个元素
console.log(arr); //输出[1, 2, 4, 5]
var arr2 = [1, 2, 3, 4, 5];
arr2.splice(2, 0, 'a', 'b'); //在第3个元素之前插入'a'和'b'
console.log(arr2); //输出[1, 2, 'a', 'b', 3, 4, 5]
var arr3 = [1, 2, 3, 4, 5];
arr3.splice(2, 2, 'a', 'b'); //删除第3个和第4个元素,并插入'a'和'b'
console.log(arr3); //输出[1, 2, 'a', 'b', 5]
```
- join()方法:用于将数组中的元素转换为字符串并连接起来。
```javascript
var arr = [1, 2, 3];
var str = arr.join('');
console.log(str); //输出'123'
var arr2 = ['a', 'b', 'c'];
var str2 = arr2.join('-');
console.log(str2); //输出'a-b-c'
```
- indexOf()方法:用于查找数组中的元素,返回该元素在数组中的下标,如果没有找到返回-1。
```javascript
var arr = [1, 2, 3, 4, 5];
var index = arr.indexOf(3);
console.log(index); //输出2
var arr2 = [1, 2, 3, 4, 5];
var index2 = arr2.indexOf(6);
console.log(index2); //输出-1
```
- length属性:表示数组的长度。
```javascript
var arr = [1, 2, 3];
console.log(arr.length); //输出3
```
除了以上操作,还有很多其他的操作可以用于操作数组对象,比如遍历数组、创建多维数组等等。下面是一些数组使用案例:
1、将一个字符串中的字符按照出现的次数出现的顺序保留到数组中。
```javascript
var str = 'qwertyuioplkjhgfdsazxcvbnm';
var arr = str.split('');
var obj = {};
for (var i = 0; i < arr.length; i++) {
var char = arr[i];
if (!obj[char]) {
obj[char] = 1;
} else {
obj[char]++;
}
}
var result = Object.keys(obj).sort(function(a, b) {
return obj[b] - obj[a];
});
console.log(result); //输出['e', 'a', 't', 'o', 'i', 's', 'r', 'n', 'l', 'c', 'd', 'u', 'm', 'p', 'h', 'g', 'y', 'f', 'b', 'v', 'w', 'k', 'x', 'z', 'j', 'q']
```
2、使用数组实现一个模板引擎。
```javascript
var data = {
title: '模板引擎',
author: '作者',
content: '内容'
};
var render = function(template, data) {
var regex = /\{\{(\w+)\}\}/g;
return template.replace(regex, function(match, $1) {
return data[$1];
});
};
var template = '
{{title}}
作者:{{author}}
var html = render(template, data);
console.log(html); //输出'
模板引擎
作者:作者
```
3、使用数组实现一个Fibonacci数列。
```javascript
var fibonacci = function(n) {
var arr = [0, 1];
for (var i = 2; i <= n; i++) {
arr[i] = arr[i - 1] + arr[i - 2];
}
return arr;
};
console.log(fibonacci(10)); //输出[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55]
```
总结:数组是一种非常实用的JavaScript对象,使用它可以简化数据的操作和管理。了解并熟练掌握数组对象提供的各种方法和属性可以极大地提高编程效率,也可以实现一些复杂的算法和功能。 如果你喜欢我们三七知识分享网站的文章, 欢迎您分享或收藏知识分享网站文章 欢迎您到我们的网站逛逛喔!https://www.37seo.cn/
发表评论 取消回复