如何创建数组
1.使用Array构造函数
语法:
new Array()
小括号()说明:
(1)预先知道数组要保存的项目数量
(2)向Array构造函数中传递数组应包括含的项
- 数组怎么赋值
var arr = new Array(2);//赋值一个参数 代表的是数组的长度
console.log(arr);
var arr1 = new Array(2, 3, 4);//多个值 代表直接赋值 长度自动
console.log(arr1);
var a = new Array();
a[0] = 1;
a[1] = 2;
a[2] = "a";
a[3] = function () {
console.log("wo shi han shu ");
return 1;
}
a[4] = null;
console.log(a); //function{ }
//数组取值
console.log(a[3]()); // 1
-
length 数组的长度
语法: Array.length
功能:获取数组array的长度
返回值: number
说明:
1、通过设置length可以从数组的末尾移除项或向数组中添加新项。
2、当把一个值放在超出当前数组大小的位置上时,数组就会重新计算其长度值,长度值等于最后一项的索引加1。/*console.log(arr.length);*/
var arr=["a","b","c","d"];
console.log(arr.length); //4
arr.length=2;
arr[99]="z";
console.log(arr.length); //100
//数组的遍历
for(var i=0;i<arr.length;i++){
console.log(arr[i]);
}
- 数组索引的值
var cols=["red","yellow","green"];
console.log(cols);
var infos=[6,"marry",true]
console.log(infos);
console.log(cols[3]); *///读取cols这个数组中索引为1的值:yellow
函数里面的方法
var k=new Array()
简写: var k=[ ];
数组的转化
- join()
语法:
arrayObjectjoin(separator)
功能:
用于把数组中的所有元素放入一一个字符串。
返回值:字符串。
- reverse()
语法:
stringObject.reverse()
功能:
用于颠倒数组中元素的顺序。
返回值:数组。
- sort()
语法:
arrayObject.sort(sortby)
功能:
用于对数组的元素进行排序。
返回值:数组。
说明:
1、即使数组中的每一项都是数值,sort()方法比较的也是字符串
2.sort()方法可以接收一个比较函数作为参数
- concat()
语法:
arrayObject.concat(arrayX,arrayX…arrayX)
功能:
用于连接两个或多个数组。
返回值:数组。
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>concat和slice</title>
</head>
<body>
<script>
//concat()
var arr1=["a","b", "c"],
arr2=["d","e",2,3],
arr3;
arr3=arr1.concat(arr2);
arr4=arr1.concat(arr2,["m",99]);
console.log(arr3);
console.log(arr4);
//slice(start,end)
var colors=["red","blue","pink","green","orange","yellow"];
var newColors=colors.slice(1,3); //截取出“blue”和“pink”
/*(1)start和end是数组中的索引值。
(2)截取start和end(不包含该元素)的元素,即为start到end-1的元素。*/
console.log(newColors ); //blue,pink
var newColors2=colors.slice(-3,4); // 3
console.log(newColors2 );
//完成下列数组b对数组a的拷贝 ,方法越多越好
var a=[1,"blue",6],
b;
//1.数组遍历
/* b=new Array();
for(var i=0;i<3;i++){
b.push(a[i]);
}*/
//2.concat 连接法
b=[].concat(a);
//3.slice法()
b=a.slice(0,3);
console.log(b);
</script>
</body>
</html>
- slice()
语法:
arrayObject.slice(start,end)
功能:
从已有的数组中返回选定的元素。
参数:
start (必需)规定从何处开始选取,如果是负数,那么它规定从数组尾部开始算起的位置。
end (可选)规定从何处结束选取,该参数是数组片断结束处的数组下标。
slice()
说明:
1、如果没有指定end ,那么切分的数组包含从start到数组结束的所有元素。
2、如果slice()方法的参数中有一个负数,则用数组长度加上该数来确定相应的位置。
注
(1) start和end是数组中的索引值。
(2) 截取start和end(不包含该元素)的元素,即为start到end-1的元素。
返回值:数组
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title> join reverse sort</title>
</head>
<body>
<script>
//join() 把数组中的所有元素放入一个字符串
var nums=[2,4,6];
var str=nums.join();
/* console.log(str);
console.log(typeof(str));*/
var words=["border","left","color"];
//border-left-color
//var wordstr=words.join(); //默认逗号隔开 border,left,color
// var wordstr=words.join(""); //字符间无间隔 borderleftcolor
var wordstr=words.join("-"); //用 - 隔开
console.log(wordstr);
//reverse() 颠倒数组顺序
console.log(nums.reverse());
var strs=["a","b","c","d"];
//返回dcba之歌字符串
var newstr=strs.reverse().join("");
console.log(newstr);
//sort() 对数组的值排序
var arr=[8,45,-3,66,12,98];
//降序的排列
arr.sort(function(a,b) {return b-a});
//升序
arr.sort(function(a,b) {return a-b});
console.log(arr);
</script>
</body>
</html>
splice三大用法
(1)删除
语法:
arrayObject.splice(index,count)
功能:
删除从index处开始的零个或多个元素。
返回值:
含有被删除的元素的数组。
说明:
count是要删除的项目数量,如果设置为0 ,则不会删除项目。如果不设置,则删除从index开始的所有值。
(2)插入
语法:
arrayObject.splice(index,0,item1,…, itemX)
功能:
在指定位置的前面插入值
参数:
Index:起始位置
0 :要删除的项数
item1…,itemX :要插入的项
返回值:数组
(3)替换
语法:
arrayObject.splice(index,0,item1…,itemX)
功能:
在指定位置插入值,且同时删除任意数量的项参数:
Index :起始位置
count:要删除的项数
item1…itemX :要插入的项
返回值:从原始数组中删除的项(如果没有删除任何项,则返回空数组)
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>splice</title>
</head>
<body>
<script>
//删除splice(index,count)
var arr=["a","b","c","d","e","f"];
/* var delArr=arr.splice(2,2); //删除从2 开始的两个元素 count为0 时不删除元素
console.log(arr); //a b e f
console.log(delArr); //c d*/
//插入 splice(index,0,item1...itemX)
/*var inputArr=arr.splice(2,0,"m","n",88); //在“c”之前插入
console.log(arr );
console.log(inputArr );*/
//替换 splice(index,0,item1.....,itemX)
var replaceArr=arr.splice(1,2,"x","y","z"); //先删除b c ,再将他们替换为x y z
console.log(arr );
console.log(replaceArr);
</script>
</body>
</html>
indexOf()
查找:
indexOf()
语法:
arrayObject.indexOf(searchvalue,startIndex)
功能:
从数组的开头(位置0)开始向后查找。(如果检查的值有多个相同值时,检查第一个值得位置)
参数:
searchvalue :必需,要查找的项;
startIndex :可选,起点位置的索引。
返回值:
number查找的项在数组中的位置,没有找到的情况下返回-1
lastIndexOf()
语法:
arrayObject.lastIndexOf(searchvalue,startIndex)功能:
从数组的末尾开始向前查找。
参数:
searchvalue :必需,要查找的项;
startIndex :可选,起点位置的索引。
返回值:
number ,查找的项在数组中的位置,没有找到的情况下返回-1。
push()
语法:
arrayObject.push(newele1,newele2…,neweX)
功能:
把它的参数顺序添加到arrayObject的尾部。
返回值:
把指定的值添加到数组后的新长度。
unshift()
语法:
arrayObject.unshift(newele1,newele2…neweX)
功能:
把它的参数顺序添加到arrayObject的开头。
返回值:
把指定的值添加到数组后的新长度。
pop()
语法:
arrayObject.pop()
功能:
删除arrayObject的最后一个元素
返回值:
被删除的那个元素
shift()
语法:arrayObject.shift()
功能:
删除arrayObject中的第一个 元素
返回值:
被删除的那个元素
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>push unshift pop shift</title>
</head>
<body>
<script>
//push //把参数添加到array的后面
var colors=new Array("red","green");
var len=colors.push("blue","yellow","blank");
//console.log(colors);
// console.log(len);
//unshift //把参数添加到array的前面
var nums=[2,7,8,9];
//var size=nums.unshift(99,66);
//console.log(nums);
//pop //删除数组中的最后一个数
var n=nums.pop();
console.log(n); //9
//shift //删除组中的第一个数
var m=colors.shift();
console.log(m);
console.log(colors);
//
</script>
</body>
</html>
小总结:
var k = [1, 2, 3, 4, 5];
//join 是驻足转化为string 参数是按照什么符号拼接
console.log(k.join("|"));
//reverse 数组的翻转
console.log(k.reverse());
//slice 截断数组 参数 start end 索引 取小不取大 截取完成之后对原数组没有影响
console.log(k.slice(0, 2));
console.log(k);
//splice 参数 start count 截取完成之后对原数组有影响
console.log(k.splice(0, 3));
console.log(k);
//数组追加的方法
//push数组内容之后追加 返回的值是数组的长度
console.log(k.push(0));
console.log(k);
//unshift内容之前追加 返回值是数组的长度
console.log(k.unshift(-1));
console.log(k);
//shift数组的删除 删除前面的 返回值是删除的值
console.log(k.shift());
console.log(k);
//pop 删除是最后边的 返回值是删除的值
console.log(k.pop());
//sort 排序的方法