一、数组对象
1、数组类型检测
数组类型检测有两种常用的方式:使用instanceof运算符和使用Array.isArray()方法
示例代码:
var arr=[]; var obj={}; //第一种方式 console.log(arr instanceof Array); //输出结果:true console.log(obj instanceof Array); //输出结果:false //第二种方式 console.log(Array.isArray(arr)); //输出结果:true console.log(Array.isArray(obj)); //输出结果:false
2、添加或删除数组元素
JavaScript数组对象提供了添加或删除元素的方法,可以实现在数组的未尾或开头添加新的数组元素,或在数组的末尾或开头移出数组元素。方法如下:
方法名 | 功能描述 | 返回值 |
---|---|---|
push(参数1...) | 数组末尾添加一个或多个元素,会修改原数组 | 返回数组的新长度 |
unshift(参数1...) | 数组开头添加一个或多个元素(把数组长度-1,无参数),会修改原数组 | 返回数组的新长度 |
pop() | 删除数组的最后一个元素,若是空数组则返回undefined,会修改原数组 | 返回删除的元素的值 |
shift() | 删除数组的第一个元素,若是空数组则返回undefined,会修改原数组 | 返回第一个元素的值 |
示例代码:
// push var arr = ['pink', 'black', 'white', 'yellow'] console.1og(arr.push('red')); // 返回的是数组长度 输出结果为: 5 console.1og(arr); // 修改了原来的数组 输出结契为['pink’,'black', ‘white', 'yellow', 'red'] // unshift var arr = ['pink', 'black', 'white', 'yellow'] console.log(arr.unshift('red','blue')); // 返问的是数组长度 输出结果为:6 console.log(arr); // 修改了原来的数组 输出结果为['red', ‘blue','pink','black'. 'white', 'yellow'] // pop var arr = ['pink', 'black'. 'white'. 'yellow'] console.1og(arr.pop()); //返回的是删除的元素 输出结果为:yellow console.1og(arr); // 修改了原来的数组 输出结果为:['pink',‘black',‘white'] // shift var arr = ['pink', 'black', 'white', 'yellow'] console.1og(arr.shift()); //返同的是删除的元素(第一个) 输出结果为:pink console.log(arr);// 修改了原来的数组 输出结果为:[‘black',‘white’,‘yellow']
注意: push()和unshift)方法的返回值是新数组的长度,而pop()和shift()方法返回的是移出的数组元素
3、案例:筛选数组
案例需求:要求在包含工资的数组中,剔除工资达到2000或以上的数据,把小于2000的数重新放到新的数组里面。
var arr=[1500,1200, 2000,2100,1800]; var newArr = []; for (var i = 0; i < arr.length; i++) { if (arr[i] < 2000) { newArr.push(arr[i]);// 相当于: newarr[newArr.length] = arr[i]; } } console.1og(newArr);
4、数组排序
JavaScript数组对象提供了数组排序的方法,可以实现数组元素排序或者颠倒数组元素的顺序等, 排序方法如下:
方法 | 功能描述 |
---|---|
reverse() | 颠倒数组中元索的位置,该方法会改变原数组,返回新数组 |
sort() | 对数组的元素进行排序,该方法会改变原数组,返回新数组 |
示例代码:
reverse
//reverse var arr = ['red', 'blue', 'green'] console.log(arr.reverse()); //输出的结果为: ['green', 'blue', 'red') console.log(arr); // 改变原数组['green','blue','red']
sort有两种情况: 1.不传参数 2.传参数:参数是用来指定按某种顺序进行排列的函数
即a和b是两个将要被比较的元素
//sort:如果调用该方法时没有使用参数,按照字符编码的顺序进行排序。 var arr1=[1,4,5,6,73,32,22,15] //不传参数的情况 console.1og(arr1.sort()); //输出的结果为:[1,15,22,32,4,5,6,73] //传参数:参数是用来指定按某种顺序进行排列的函数 /*即a和b是两个将要被比较的元素:*/ arr1.sort(function (a, b) { //returnb-a;//降序 //[73,32,22.15,6,5,4.1] return a-b;//升序 //[1,4.5,6.15.22.32.73] }) console.1og(arr1);
注意: 需要注意的是:reverse()和sort()方法的返回值是排序后的数组 sort如果调用该方法时没有使用参数,按照字符编码的顺序进行排序
5、数组索引
在开发中,若要查找指定的元素在数组中的位置,可以利用Array对象提供的检索方法。检索方法如下:
方法 | 功能描述 |
---|---|
indexOf() | 返回在数组中可以找到给定值的第一个索引,如果不存在,则返回-1 |
lastlndexOf() | 返回指定元素在数组中的最后一个的索引,如果不存在则返回-1 |
示例代码: indexOf()
参数1:要找的元素 参数2:开始查找的位置 注意:如果第二个参数是-1表示从最后一个元素开始查找,-2表示从倒数第二个元素开始查找,以此类推。
var bcasts = ['ant', 'bison', 'camcl', 'duck', 'bison']; console.log(beasts.index0f('bison')); //愉出结果为:1 //找到第二个bison的索引 console.lo