版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wgf5845201314/article/details/90765242
JavaScript 数组操作方法
本节课所讲内容:
1. JavaScripts 数组创建
2. JavaScript数组操作方法
主讲教师:Head老师
一. JavaScript数组创建
1.使用new关键字创建数组
var box = new Array(); //创建了一个数组
var box = new Array(10); //创建一个包含10个元素的数组
var box = new Array('曹老师','web','学神'); //创建一个数组并分配好了元素
2.以上三种方法,可以省略new关键字。
var box = Array(); //省略了new关键字
3.使用字面量方式创建数组
var box = []; //创建一个空的数组
var box = ['曹老师','web','学神']; //创建包含元素的数组
4.使用索引下标来读取数组的值
alert(box[2]); //获取第三个元素
box[2] = '学生'; //修改第三个元素
box[4] = '计算机编程'; //增加第五个元素
5.使用length属性获取数组元素量
alert(box.length) //获取元素个数
box.length = 10; //强制元素个数
box[box.length] = 'JS技术'; //通过length给数组增加一个元素
6.创建一个稍微复杂一点的数组
var box = [
{ //第一个元素是一个对象
name : '曹老师',
age : 28,
run : function () {
return 'run了';
}
},
['马云','李彦宏',new Object()], //第二个元素是数组
'江苏', //第三个元素是字符串
25+25, //第四个元素是数值
new Array(1,2,3) //第五个元素是数组
];
alert(box);
二、 JavaScript数组操作方法
(一)相关知识补充
1. splice 函数
splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目。
注释:该方法会改变原始数组。
语法
arrayObject.splice(index,howmany,item1,.....,itemX)
参数 | 描述 |
---|---|
index | 必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。 |
howmany | 必需。要删除的项目数量。如果设置为 0,则不会删除项目。 |
item1, ..., itemX | 可选。向数组添加的新项目。 |
返回值
类型 | 描述 |
---|---|
Array | 包含被删除项目的新数组,如果有的话。 |
说明
splice() 方法可删除从 index 处开始的零个或多个元素,并且用参数列表中声明的一个或多个值来替换那些被删除的元素。
如果从 arrayObject 中删除了元素,则返回的是含有被删除的元素的数组。
2. unshift() 方法
实例
将新项添加到数组起始位置:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.unshift("Lemon","Pineapple");
fruits 将输出:
Lemon,Pineapple,Banana,Orange,Apple,Mango
定义和用法
unshift() 方法可向数组的开头添加一个或更多元素,并返回新的长度。
注意: 该方法将改变数组的数目。
提示: 将新项添加到数组末尾,请使用 push() 方法。
var arr = [1,2,3];
alert(arr.push('abc')); //弹出数组长度 4
alert(arr); //1,2,3,abc
alert(arr.unshift(0)); ////弹出数组长度 5
alert(arr); //0,1,2,3,abc
var arr = [1,2,3];
alert(arr.push('abc')); //弹出数组长度 4
alert(arr); //1,2,3,abc
alert(arr.unshift(0)); ////弹出数组长度 5
alert(arr); //0,1,2,3,abc
var arr = ['Head', 'teacher','school','study'];
alert(arr.splice(0,0,'aaa'));
//添加 返回 空值 ,
//arr内容为 :aaa,Head,teacher,school,study
alert(arr.splice(0,2,'bbb'));
// 替换 返回被删除的项目 ,aaa,Head,
// arr内容为:bbb,teacher,school,study
alert(arr.splice(1,0,'前端学习','成为学神'));
// 添加元素 返回 空值
// arr 内容为: bbb,前端学习,成为学神,teacher,school,study
alert(arr); // 输出 aaa,Head,teacher,school study
数组去重
//数组去重
var arr = [1,2,2,4,2];
for(var i=0;i<arr.length;i++){
for(var j=i+1 ;j<arr.length;j++){
if(arr[i]==arr[j]){
arr.splice(j,1);
j--;
}
}
}
alert(arr);
数组排序:
sort 自带的排序方法,但是有问题
//数组排序
var arr=['c','d','a','b','e'];
arr.sort(); //sort 排序 有bug
alert(arr); // a,b,c,d,e
var arr2 = [4,3,5,1,6,76,9,8];
arr2.sort();
alert(arr2); // 有问题: 1,3,4,5,6,76,8,9
正确的排序方法:
var arr2 = [4,3,5,1,6,76,9,8];
arr2.sort(function(a,b){
return a-b; //sort排序的时候 记得加入匹配
});
alert(arr2); // 1,3,4,5,6,8,9,76
随机数
//随机数
var arr = [1,2,3,4,5,6,7,8];
arr.sort(function(a,b){
return Math.random()-0.5;
})
alert(arr); //随机排布 8,6,5,4,3,2,7,1
数组的连接
//数组的链接
var arr1 = [1,2,3];
var arr2 = [4,5,6];
var arr3 = [7,8,9];
alert(arr1.concat(arr2,arr3)); // 1,2,3,4,5,6,7,8,9