数组对象的作用是:使用单独的变量名来存储一系列的值。
什么是数组?
数组对象是使用单独的变量名来存储一系列的值。
如果你有一组数据,如下所示:
var car1="Saab";
var car2="Volvo";
var car3="BMW";
如果你想从中找出某一条数据,或许不难,但是在很多数据情况下呢,这将不是一件容易的事!
最好的方法就是用数组。
创建一个数组
创建一个数组,有三种方法。
下面的代码定义了一个名为 myCars的数组对象:
1.常规方式:
var myCars=new Array();
myCars[0]="Saab";
myCars[1]="Volvo";
myCars[2]="BMW";
2.简洁方式:
var myCars=new Array("Saab","Volvo","BMW");
3.字面:
var myCars=["Saab","Volvo","BMW"];
访问数组
通过指定数组名以及索引号码,你可以访问某个特定的元素。
以下实例可以访问myCars数组的第一个值:
var name=myCars[0];
以下实例修改了数组 myCars 的第一个元素:
myCars[0]="Opel";
这里注意:[0] 是数组的第一个元素。[1] 是数组的第二个元素。
Js数组的一些处理方法:
1.push(): 向数组的末尾添加一个或多个元素,并返回新的长度
let arr = [1, 2, 3];
arr.push(4); // 打印为 [1, 2, 3, 4]
2.pop(): 删除并返回数组的最后一个元素。
let arr = [1, 2, 3];
arr.pop(); // 打印为 [1, 2]
3.shift():删除并返回数组的第一个元素。
let arr = [1, 2, 3];
arr.shift(); // 打印为 [2, 3]
4.unshift():向数组的开头添加一个或多个元素,并返回新的长度。
let arr = [1, 2, 3];
arr.unshift(0); // 打印为 [0, 1, 2, 3]
5.splice():通过删除或替换现有元素或添加新元素来修改数组。
let arr = ['a', 'b', 'c', 'd'];
arr.splice(1, 2, 'new', 'inserted'); // 打印为 ['a', 'new', 'inserted', 'd']
6.slice():返回一个新的数组,包含从开始到结束(不包括结束)选择的数组的一部分浅拷贝。原始数组不会被改变。
let arr = [1, 2, 3, 4];
arr.slice(1, 3); // 打印为 [2, 3]
7.join():将数组(或一个类数组对象)的所有元素连接到一个字符串中。元素通过指定的分隔符进行分隔。
let arr = [1, 2, 3];
arr.join(); // 打印为 '1,2,3'
8.concat():连接两个或更多数组。此方法不会改变现有的数组,而是返回一个新数组。
let arr1 = [1, 2, 3];
let arr2 = [4, 5, 6];
let arr3 = arr1.concat(arr2); // 打印为 [1, 2, 3, 4, 5, 6]
9.map():创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果。
let arr = [1, 2, 3];
let newArr = arr.map(function(item) { return item * 2; }); // 打印为 [2, 4, 6]
10.filter():创建一个新的数组,包含通过所提供函数实现的测试的所有元素。
let arr = [1, 2, 3, 4];
let newArr = arr.filter(function(item) { return item > 2; }); // 打印为 [3, 4]
11.reduce():对累加器和数组中的每个元素(从左到右)应用一个函数,将其减少为单个值。
let arr = [1, 2, 3];
let sum = arr.reduce(function(accumulator, currentValue) { return accumulator + currentValue; }, 0); // 打印为 6
12. forEach():对数组的每个元素执行一次提供的函数。
let arr = [1, 2, 3];
arr.forEach(function(item, index) { console.log(item, index); });
13. indexOf():用于返回在数组中可以找到给定元素的第一个索引,如果不存在,则返回-1。
let arr = ['apple', 'banana', 'cherry'];
console.log(arr.indexOf('banana')); // 输出 1
console.log(arr.indexOf('orange')); // 输出 -1
console.log(arr.indexOf('banana', 2)); // 输出 -1
14. find():返回数组中满足提供的测试函数的第一个元素的值。
let arr = [1, 2, 3, 4];
let value = arr.find(function(item) { return item > 2; });
console.log(value);// 打印为 3
15. findIndex():返回数组中满足提供的测试函数的第一个元素的索引。
let arr = [1, 2, 3, 4];
let index = arr.findIndex(function(item) { return item > 2; }); // 打印为 2
16.keys():返回一个包含数组的键的数组迭代器。这在使用数组的 forEach 方法时特别有用,因为 forEach 需要键和值。
let arr = ['a', 'b', 'c'];
let keys = arr.keys(); // 打印为 [0, 1, 2]
17.values():返回一个包含数组值的数组迭代器。
let arr = ['a', 'b', 'c'];
let values = arr.values(); // 打印为 ['a', 'b', 'c']//
18.sort():对数组的元素进行排序,并返回排序后的数组。
let arr = [3, 1, 2];
let sorted = arr.sort(); // 打印为 [1, 2, 3]
19.split():将字符串或数组拆分为子字符串或子数组,并返回一个新的数组。
let str = 'apple,banana,cherry';
let arr = str.split(',');
console.log(arr); // ['apple', 'banana', 'cherry']
split() 方法可以按照指定的分隔符将字符串拆分为子字符串
let arr = [1, 2, 3, 4, 5];
let newArr = arr.split([2, 3]);
console.log(newArr); // [[1], [4, 5]]
方法也可以用于将数组拆分为子数组
20.includes():检查数组是否包含特定的值。
let arr = [1, 2, 3, 4, 5];
console.log(arr.includes(2)); // true
console.log(arr.includes(6)); // false